Systems and methods for determining a height of a mobile device above a surface

ABSTRACT

Determining one or more heights of one or more mobile devices above surfaces. Particular embodiments described herein include machines that retrieve first data (e.g., measurement value(s) determined by sensor(s) of a mobile device or estimated position(s) of the mobile device), determine a location context based on the first data, identify second data (e.g., measurement value(s) determined by sensor(s) of the mobile device or status indicator value(s) of feature(s) of the mobile device) to retrieve for use in determining an estimated height above a surface at which the mobile device is located based on the determined location context, retrieve the second data, and determine an estimated height above a surface at which the mobile device is located based on the retrieved second data.

BACKGROUND

Knowing the height above a surface (e.g., a ground-level surface outsideor a floor-level surface of a structure) at which a mobile device islocated has many valuable uses. For instance, heights above a surfacecan be used to calibrate a pressure sensor of a mobile device, estimatean altitude of the mobile device relative to a known altitude of thesurface, or estimate an altitude of the surface (e.g., a floor in abuilding). Past approaches typically assume that the mobile device islocated at a common expected height above the surface, such asapproximately 0.9 meters or 3 feet, which corresponds to heights ofthings on which or in which the mobile device is likely to be placed(e.g., furniture, pockets or bags). In some cases, a common expectedheight above a surface can differ from the true height of a mobiledevice above the surface by over 1 meter (e.g., when the mobile deviceis not in a user's pocket, and is instead being held against the user'sear during a phone call). Thus, use of a common expected height isunreliable, and different uses of the common expected height will leadto erroneous results that may be unacceptable or possible to improve. Itfollows that more-accurate estimates of the height above a surface atwhich a mobile device is located would be advantageous for use inimproving the usefulness of the height. Systems and methods fordetermining an improved height estimate of a mobile device are describedherein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an environment in which systems and methods fordetermining a height of a mobile device above a surface may operate.

FIG. 2A depicts a first process for determining a height of a mobiledevice above a surface and FIG. 2B depicts a second process fordetermining a height of a mobile device above a surface.

FIG. 3A-H depict processes for estimating a height above a surface atwhich the mobile device is located based on a determined locationcontext and other data.

FIG. 4 illustrates components of a transmitter, a mobile device, and aserver of the environment in which systems and methods for determining aheight of a mobile device above a surface may operate.

DETAILED DESCRIPTION

Systems and methods for determining a height of a mobile device above asurface are described herein. For purposes of illustration, FIG. 1depicts an environment 100 that includes a positioning system (e.g., anetwork of terrestrial transmitters 110 and/or a network of satellites150) configured to transmit positioning signals used to estimatepositions of mobile devices 120, as is well-known in the art. Theestimated positions may be determined at the mobile devices 120 or aserver 130. By way of example, the mobile devices 120 may be a mobilephone or other wireless communication device, a portable computer, anavigation device, a tracking device, a receiver, or another suitabledevice. Examples of possible components in the transmitters 110, themobile devices 120 and the server 130 are shown in FIG. 4 and discussedin the ‘Other Aspects’ section near the end of this disclosure orelsewhere herein. Pressure and temperature sensors (not shown) may beco-located with any of the transmitters 110, and can generatemeasurements of pressure and temperature that are used to estimate anunknown altitude h_(mobile) of a particular mobile device using thefollowing well-known barometric formula:h _(mobile) =h _(sensor)−(RT/gM)In(P _(sensor) /P _(mobile))  (Equation1),where P_(mobile) is an estimate of pressure from a pressure sensor ofthe mobile device, P_(sensor) is an estimate of pressure and T is anestimate of temperature from the location of a transmitter, h_(sensor)is an estimated altitude of the transmitter, g corresponds toacceleration due to gravity (e.g., −9.8 m/s²), R is a gas constant, andM is molar mass of air. Estimates of altitude often have some level oferror due to drift of the pressure sensor of the mobile device, whichrequires accurate calibration of the pressure sensor over time. Aspectsof this disclosure relate to determining a height above a surface atwhich a mobile device resides, which can be used to calibrate thepressure sensor of that mobile device, among other uses.

As described herein, different “location contexts” of mobile phones canbe determined, and the determined location contexts can be used toestimate heights above a surface (e.g., the ground, a floor or anothertype of surface) at which the mobile devices are located. Resultantestimated heights have many uses that are discussed later herein,including use in calibrating pressure sensors of mobile devices, use inestimating altitudes of mobile devices, or use in estimating altitudesof the surfaces. By way of example, location contexts may include: aparticular mobile device is at a known location; a particular mobiledevice is stationary; a particular mobile device is on a bike; aparticular mobile device is with a user who is walking or running; aparticular mobile device is in a vehicle; or other location contextsdescribed herein. For purposes illustration, FIG. 1 depicts some of theforegoing location contexts. As discussed later herein, a particularlocation context for a particular mobile device can be determined usingfirst data, after which the determined location context is used alongwith second data to determine an estimated height above a surface atwhich the mobile device is located. Details regarding first data andsecond data are provided later.

Different approaches for estimating the height above a surface at whicha mobile device is located are described herein, including (i) anapproach that uses first data to identify a location context that is inturn used to identify second data that is in turn used to determine anestimated height, and (ii) an approach that uses first data to identifya location context that is in turn used to identify possible estimatedheights that are in turn used to identify second data that is in turnused to select an estimated height from among the possible estimatedheights. As shown in FIG. 1, one or more data sources 140 can be used tostore different location contexts. For each location context, the datasources 140 may store first data that is used to identify that locationcontext from among other location contexts, and may also storeparticular second data and/or particular possible heights in associationwith a particular location context. In some embodiments, particularpossible heights are stored only in association with particular seconddata that is stored in association with particular location contexts.

A first process for determining heights of mobile devices above surfacesis shown in FIG. 2A, which includes the following steps: retrievingfirst data that comprises one or more of (i) at least one measurementvalue determined by at least one sensor of a mobile device or (ii) atleast one estimated position of the mobile device (210); based on thefirst data, determining a location context (220); based on thedetermined location context, identifying second data to retrieve for usein determining an estimated height above a surface at which the mobiledevice is located, wherein the second data comprises one or more of (i)at least one measurement value determined by at least one sensor of themobile device or (ii) at least one status indicator value of a featureof the mobile device (230); retrieving the second data (240);determining, based on the retrieved second data, an estimated heightabove a surface at which the mobile device is located (250); and(optionally) using the estimated height above the surface to achieve aresult (260). Embodiments for each of these steps are discussed below.

Initially, first data is retrieved (210). In different embodiments ofstep 210, the first data comprises (i) at least one measurement valuedetermined by at least one sensor of the mobile device, (ii) at leastone estimated position of the mobile device, or both (i) and (ii). Byway of example, retrieval of data during step 210 may include receivingthe data from a source of the data (e.g., a sensor, memory, or otherdata source), and optionally includes requesting the data from thesource of the data. Requests can be in any known form.

A location context is determined based on the first data (220). Locationcontexts specify location circumstances of the mobile device that can beused to determine a height of the mobile device above a surface. In oneembodiment of step 220, the determined location context specifies themobile device is at a known location (e.g., a residence or workplace ofthe mobile phone's user, or another type of area or place). In otherembodiments of step 220, the location context specifies estimatedlocation circumstances of the mobile device as being any of: (i) with auser who is on foot; (ii) on a bike or with a user who is on a bike;(iii) in a vehicle such as a car or public transportation; (iv)stationary; or (v) on the surface after being dropped. In these otherembodiments, the location context may be selected from a group ofpossible location contexts that include different combinations of theestimated location circumstances (i) through (v), which permitscustomized implementations—e.g., a first embodiment comprising a groupof one possible location context, a second embodiment comprising a groupof two possible location contexts, a third embodiment comprising a groupof three possible location contexts, a fourth embodiment comprising agroup of four possible location contexts, and a fifth embodimentcomprising a group of five possible location contexts. Examples ofdetermining different location contexts based on different values of thefirst data are provided below under section heading ‘Determining alocation context based on retrieved first data’.

Based on the determined location context, second data to retrieve isidentified for use in determining an estimated height above a surface atwhich the mobile device is located (230). In different embodiments ofstep 230, the second data comprises (i) at least one measurement valuedetermined by at least one sensor of the mobile device, (ii) at leastone status indicator value of a feature of the mobile device, or both(i) and (ii). Examples of different second data are provided later underthe “Second data” heading. In a first embodiment of step 230, one ormore types of data associated with the determined location context areidentified as the second data to retrieve. By way of example, thedetermined location context may be used in a search query of a datasource that stores different data types that each have association(s) tolocation context(s), and the determined location context is used to lookup, as the second data to retrieve, the data types associated with thatlocation context. The stored data types could be identifiers specifyingparticular types of data to retrieve—e.g., a measurement from a sensorof the mobile device, or values any of one or more status indicatorsfrom an API of the mobile device. In a second embodiment of step 230,one or more values of data associated with the determined locationcontext are identified as the second data to retrieve. By way ofexample, the determined location context may be used in a search queryof a data source that stores different data values that are eachassociated to any number of location context(s), and the determinedlocation context is used to look up, as the second data to retrieve, allvalues of data associated with that location context. For example, thestored data values could be a value of a measurement determined by asensor of the mobile device, or values of one or more status indicatorsfrom an API of the mobile device. By way of example, FIG. 1 illustratesa data source 140 that stores different sets of data types or datavalues (e.g., second data 1 through second data N), where each set ofdata types or data values is associated with one or more locationcontexts (e.g., location context 1 through location context N). In someimplementations of the first and second embodiments of step 230,additional data types or data values associated with other locationcontexts other than the determined location context can also beidentified for retrieval regardless of the determined location context,or such additional data types or data values can be excluded fromretrieval. Also, previously retrieved values of data that were retrievedin association with a previous location context that was determined atan earlier time can be cached for later retrieval in case the currentlydetermined location context is identical to the previous locationcontext and new values of that data are unavailable.

The second data is retrieved (240). By way of example, retrieval of datavalues during step 240 may include receiving the data from a source ofthe data (e.g., a sensor, memory, the data source, or any other suitablesource of the data values), and optionally includes requesting the datafrom the source of the data. Requests can be in any known form.

An estimated height above the surface at which the mobile device islocated is determined based on the retrieved second data (250). Examplesof determining different estimated heights based on different locationcontexts and associated second data are provided in FIG. 3A through FIG.3H, which are discussed later.

Optionally, the estimated height above the surface is used to achieve aresult (260).

-   -   In a first embodiment of optional step 260, the estimated height        above the surface is used to calibrate a pressure sensor of the        mobile device based on a difference between an estimated        altitude of the mobile device and the sum of a known altitude of        the surface and the estimated height that was determined during        step 250. By way of example, the estimated altitude of the        mobile device may be determined using any known means (e.g., a        satellite or terrestrial positioning system, a barometric        positioning system, or other system), and the description under        the “Calibration” heading of this disclosure illustrates how a        pressure sensor of the mobile can be calibrated using the        estimated height above the surface.    -   In a second embodiment of optional step 260, the estimated        height above the surface is used to determine an estimated        altitude of the mobile device as the sum of a known altitude of        the surface and the estimated height that was determined during        step 250. By way of example, the known altitude of the surface        may be accessed from a data source, such as a building or        terrain database that stores the known altitude in association        with a position that matches an initial estimate of the mobile        device's position, or a local beacon that is communicating with        the mobile device (e.g., a WiFi beacon), a floor number or a        venue identified by a user of the mobile device, or other        information.    -   In a third embodiment of optional step 260, the estimated height        above the surface is used to estimate an altitude of the surface        as the difference between an estimated altitude of the mobile        device and the estimated height that was determined during step        250. By way of example, the estimated altitude of the mobile        device may be determined using any known means (e.g., a        satellite or terrestrial positioning system, a barometric        positioning system, or other system).

A second process for determining heights of mobile devices abovesurfaces is shown in FIG. 2B, which includes the following steps:retrieving first data that comprises one or more of (i) at least onemeasurement value determined by at least one sensor of a mobile deviceor (ii) at least one estimated position of the mobile device (215);based on the first data, determining a location context (225); based onthe determined location context, identifying one or more possibleestimated heights above a surface at which the mobile device is located(235); (optionally) determining if the one or more possible estimatedheights include more than one possible estimated height (245);(optionally) if the one or more possible estimated heights include onlyone possible estimated height, selecting that one possible estimatedheight as a height above the surface at which the mobile device islocated (255); identifying second data to retrieve for use in selectingone of the possible estimated heights as an estimated height above thesurface at which the mobile device is located (265); retrieving thesecond data (275); and using the retrieved second data to determinewhich one of the possible estimated heights is the estimated heightabove the surface at which the mobile device is located (285); and(optionally) using the estimated height above the surface to achieve aresult (295). Each of these steps are discussed below. Each of thesesteps are discussed below.

First data is retrieved (215) and a location context is determined basedon the first data (225). Details for steps 215 and 225 are the samedetails for steps 210 and 220 of FIG. 2A.

Based on the determined location context, one or more possible estimatedheights above a surface at which the mobile device is located areidentified (235). By way of example, the one or more possible heightsmay be stored by a data source in association with the determinedlocation context, and the determined location context may be used in asearch query of to that data source such that the determined locationcontext is used to look up the one or more possible estimated heights.

Optionally, a determination is made as to whether the one or morepossible estimated heights include more than one possible estimatedheight (245), which may be a simple query of the number of possibleheights and a determination as to whether the number of possible heightsexceeds one possible height, and if the one or more possible estimatedheights include only one possible estimated height, then that onepossible estimated height is selected as a height above the surface atwhich the mobile device is located (255).

Second data to retrieve is identified for use in selecting one of thepossible estimated heights as the height above the surface at which themobile device is located (265). By way of example, each of the one ormore possible estimated heights may be stored by a data source inassociation with a respective set of second data, and the identifiedpossible estimated heights may be used in a search query to that datasource such that the possible estimated heights are used to look up thesecond data associated with those possible estimated heights.Alternatively, the determined location context could look up both thepossible estimated heights and the second data associated with thepossible estimated heights. Details for step 265 are the same detailsfor step 230 of FIG. 2A.

The identified second data is subsequently retrieved (275). Details forstep 275 are the same details for step 240 of FIG. 2A.

Based on the retrieved second data, one of the possible estimatedheights is selected as the estimated height above the surface at whichthe mobile device is located (285). Examples of determining differentestimated heights based on different second data are provided in FIG. 3Athrough FIG. 3H, which are discussed later. The determined estimatedheight is the selected height.

Optionally, the estimated height above the surface is used to achieve aresult (295). Details for step 295 are the same details for step 260 ofFIG. 2A.

The sections that follow describe different embodiments of FIG. 2A andFIG. 2B, including (i) different approaches for determining a locationcontext based on retrieved first data, (ii) examples of second data, and(iii) different approaches for estimating a height above a surface atwhich a mobile device is located are discussed. Before advancing tothese sections, attention is given to examples of mobile device featuresthat may be implicated by the different embodiments described below. Byway of example, such features of a mobile device (e.g., any the mobiledevices 120 of FIG. 1) are provided in FIG. 4, which shows that themobile device may include: a transmitter interface 21 for exchanginginformation with a transmitter (e.g., an antenna and RF front endcomponents known or otherwise disclosed herein); one or moreprocessor(s) 22; memory/data source 23 for providing storage andretrieval of data and for providing storage and retrieval ofinstructions from modules relating to methods of operation describedherein or other processing that may be executed by the processor(s) 22or other component(s); a user interface 26 (e.g., display, keyboard,microphone, speaker, other) for permitting a user to provide inputs andreceive outputs; another interface 27 for exchanging information with aserver or other devices external to the mobile device (e.g., an antenna,a network interface, or other known wired or wireless links); a GNSSinterface and GNSS processing unit (not shown); and any other componentsof typical mobile devices known to one of ordinary skill in the art. Themobile device may include different sensor(s) 24—e.g., an accelerometerfor measuring acceleration of the mobile device, a gyroscope formeasuring orientation of the mobile device, any other inertialmeasurement unit (IMU) for measuring aspects of the mobile device'smovement, a pressure sensor for measuring a pressure at the altitude ofthe mobile device, a temperature sensor for measuring an internaltemperature of the mobile device, a light sensor for measuring ambientlight, a microphone for measuring sound, a camera for capturing images,or other known sensors. As will be discussed below, these sensors areused to generate data (e.g., the first data and/or the second data). Themobile device may also include one or more application programminginterfaces (APIs) 25 that provide different status indicators describedlater under the ‘Second Data’ section.

As shown in FIG. 4, the memory/data source 23 may include memory thatstores software modules with executable instructions, and theprocessor(s) 22 may perform different actions by executing theinstructions from the modules, including: (i) performance of part or allof the methods as described herein or otherwise understood by one ofskill in the art as being performable at the mobile device (e.g.,determining a location context, estimating a height, using the estimatedheight, retrieving first data and/or retrieving second data); (ii)estimation of an altitude of the mobile device; (iii) GNSS orterrestrial signal processing of received signals to determine positioninformation (e.g., times of arrival or travel time of received signals,pseudoranges between the mobile device and transmitters, atmosphericinformation from transmitters, and/or location or other informationassociated with each transmitter); (iv) use of the position informationto compute an estimated position of the mobile device; (v) determinationof movement based on measurements from inertial sensors of the mobiledevice; or (vi) other processing as required by operations described inthis disclosure.

Determining a Location Context Based on Retrieved First Data

In one embodiment of step 220 of FIG. 2A or step 225 of FIG. 2B,location contexts specify an estimated location circumstance of themobile device as being any of: (i) with a user who is on foot; (ii) onor with a user who is on a bike; (iii) in a vehicle; (iv) stationary; or(v) on the ground or floor after being dropped. Any combination of theestimated location circumstances of the mobile device (e.g., with a userwho is on foot; on or with a user who is on a bike; in a vehicle;stationary; or on the ground or floor after being dropped) can beconsidered as a possible location context in differentimplementations—e.g., only one of the estimated location circumstancesis considered in a first implementation (e.g., determining if thelocation context is stationary), only two of the estimated locationcircumstances are considered in a second implementation (e.g.,determining if the location context is with a user on foot, or in avehicle), only three of the estimated location circumstances areconsidered in a third implementation, only four of the estimatedlocations are considered in a fourth implementation, or all five of theestimated locations are considered in a fifth implementation.

When the first data includes one or more measurement values determinedby one or more inertial sensors of the mobile device (e.g., such as aninertial measurement unit (IMU), an individual accelerometer, and/or anindividual gyroscope), determining the location context based on thefirst data uses any of different combinations of the conclusionsdescribed below with respect to first through fifth sets of embodiments.

In a first set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as being with auser who is on foot (e.g., walking or running) when the one or moremeasurement values are indicative of a movement associated with awalking or running user. In different embodiments, the one or moremeasurement values are indicative of a walking or running motion by theuser when the measurement values represent a stepping movement of theuser (e.g., a repetitive motion recorded over time that is associatedwith a walking or running motion, as is known in the art), or when themeasurement values include periodic measurements of the same angularorientation (or periodic measurements of the same series of angularorientations) from a gyroscope that is indicative of an orientation (ororientations) at which a mobile device is periodically positioned whilebeing carried by a user who is walking or running (e.g., when movingwith the user's hand or pocket).

In a second set of embodiments, the determined location contextspecifies an estimated location circumstance of the mobile device asbeing on or with a user who is on a bike when the one or moremeasurement values are indicative of a movement associated with a movingbike. In one embodiment, the one or more measurement values areindicative of a movement associated with a moving bike when movementmeasured by an IMU of the mobile device includes vibrations as the bikeis moving over on an unlevel bike path, such as particular vibrationsthat may be represented by sporadic, occasional or consistent up anddown Z-accelerations of varying degrees of acceleration. By way ofexample, if a measured spread of the up and down Z-accelerations exceedsa threshold value for a percent of the time during which Z-accelerationsare measured (e.g. 2 m/s{circumflex over ( )}2 50% of the time), thenthe measured up and down Z-accelerations indicate the mobile device ison a bike. In another embodiment, the one or more measurement values areindicative of a movement associated with a moving bike whenXY-directional movement measured by an accelerometer of the mobiledevice represents sporadic, occasional or consistent increases ordecreases in acceleration of varying degrees as the bike increases anddecreases its speeds while traveling. By way of example, if a measuredspread of the increases and decreases of XY-accelerations exceeds athreshold value for a percent of the time during which XY-accelerationsare measured (e.g. 5 m/s{circumflex over ( )}2 75% of the time), thenthe measured increasing and decreasing XY-accelerations indicate themobile device is on a bike.

In a third set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as being in avehicle when the one or more measurement values are indicative of amovement associated with a moving vehicle (e.g., a car). In oneembodiment, the one or more measurement values are indicative of amovement associated with a moving vehicle when movement measured by anIMU of the mobile device includes vibrations as the vehicle is movingover the ground, such as particular vibrations that may be representedby sporadic, occasional or consistent up and down Z-accelerations ofvarying degrees of acceleration. By way of example, if a measured spreadof the up and down Z-accelerations exceeds a threshold value for apercent of the time during which Z-accelerations are measured (e.g. 3m/s{circumflex over ( )}2 50% of the time), then the measured up anddown Z-accelerations indicate the mobile device is in a vehicle. Inanother embodiment, the one or more measurement values are indicative ofa movement associated with a moving vehicle when XY-directional movementmeasured by an accelerometer of the mobile device represents sporadic,occasional or consistent increases or decreases in acceleration ofvarying degrees as the vehicle increases and decreases its speeds whilein traveling. By way of example, if a measured spread of the increasesand decreases of XY-accelerations exceeds a threshold value for apercent of the time during which XY-accelerations are measured (e.g. 10m/s{circumflex over ( )}2 50% of the time), then the measured increasingand decreasing XY-accelerations indicate the mobile device is in avehicle.

In a fourth set of embodiments, the determined location contextspecifies an estimated location circumstance of the mobile device asbeing stationary when the one or more measurement values are indicativeof no movement. By way of example, the one or more measurement valuesare indicative of no movement when a difference between two readings ofan accelerometer that are measured within a predefined amount of time(e.g., 1 second, 10.0 seconds) of each other is below an accelerationthreshold (e.g. 1 m/s{circumflex over ( )}2, which accounts for possiblemeasurement error). By way of another example, the one or moremeasurement values are indicative of no movement when an angularseparation between two orientation readings of a gyroscope that aremeasured within a predefined amount of time (e.g., 1 second, 10.0seconds) of each other is below an orientation threshold (e.g. less than10 degrees of angular separation, which accounts for possiblemeasurement error).

In a fifth set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as being on thesurface after being dropped when the one or more measurement values areindicative of a movement associated with falling to and resting on asurface. By way of example, the one or more measurement values areindicative of a movement associated with falling to and resting on asurface when an accelerometer of the mobile device measures a largeimpact via a sudden change in Z-axis acceleration from one measurementto another measurement that exceeds a threshold amount of change (e.g. afirst measurement of Z-axis acceleration was 9.8 m/s{circumflex over( )}2 due to gravity and the next Z-axis acceleration measurement was100 m/s{circumflex over ( )}2 which exceeds a threshold amount of changeof 10 m/s{circumflex over ( )}2), or an accelerometer of the mobiledevice measures no Z-axis acceleration after a measurement of Z-axisacceleration associated with falling (e.g., 9.8 m/s{circumflex over( )}2 due to gravity).

When the first data includes two or more estimated positions of themobile device (e.g., from a positioning application of the mobiledevice, proximities to access points, or from another known positioningtechnique), determining the location context based on the first datathat includes two or more estimated positions of the mobile device(e.g., consecutive estimated positions) uses any of differentcombinations of the conclusions described below with respect to sixththrough tenth sets of embodiments.

In a sixth set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as being with auser who is on foot (e.g., walking or running) when the two or moreestimated positions are indicative of a movement associated with awalking or running user. By way of example, the two or more estimatedpositions are indicative of a walking or running motion by the user whena velocity of the mobile phone (e.g., as calculated by dividing adistance between the two estimated positions by a time elapsed betweenwhen each of the estimated positions was determined) is above a firstthreshold associated with a minimum walking speed (e.g., 1 km/hr) andbelow a second threshold associated with a maximum running speed (e.g.,5 km/hr).

In a seventh set of embodiments, the determined location contextspecifies an estimated location circumstance of the mobile device asbeing on or with a user who is on a bike when the two or more estimatedpositions are indicative of a movement associated with a bike. By way ofexample, the two or more estimated positions are indicative of amovement associated with a bike when a velocity of the mobile phone(e.g., as calculated by dividing a distance between the two estimatedpositions by a time elapsed between when each of the estimated positionswas determined) is above the second threshold associated with a maximumrunning speed (e.g., 5 km/hr) and below a third threshold associatedwith a maximum bike speed or associated with a speed below which avehicle is unlikely to be traveling (e.g., 10 km/hr).

In an eighth set of embodiments, the determined location contextspecifies an estimated location circumstance of the mobile device asbeing in a vehicle when the two or more estimated positions areindicative of a movement associated with a vehicle. By way of example,the two or more estimated positions are indicative of a movementassociated with a vehicle when a velocity of the mobile phone (e.g., ascalculated by dividing a distance between the two estimated positions bya time elapsed between when each of the estimated positions wasdetermined) is above the third threshold associated with a maximum bikespeed or associated with a speed below which a vehicle is unlikely to betraveling (e.g., 10 km/hr) and below a fourth threshold associated witha maximum speed of a vehicle (e.g., 200 km/hr).

In a ninth set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as beingstationary when the two or more estimated positions are indicative of amovement associated with being stationary. By way of example, the two ormore estimated positions are indicative of being stationary when avelocity of the mobile phone (e.g., as calculated by dividing a distancebetween the two estimated positions by a time elapsed between when eachof the estimated positions was determined) is below the first thresholdassociated with a minimum walking speed (e.g., 1 km/hr) and optionallywhen a vertical velocity of the mobile device is below a verticalvelocity threshold (e.g., 1 m/s).

In a tenth set of embodiments, the determined location context specifiesan estimated location circumstance of the mobile device as being on thesurface after being dropped when the two or more estimated positions areindicative of a movement associated with falling to and landing on thesurface. By way of example, the two or more estimated positions areindicative of falling to and landing on the surface when the secondestimated position is lower than the first estimated position, avertical velocity of the mobile phone (e.g., as calculated by dividing aZ distance between the two estimated positions by a time elapsed betweenwhen each of the estimated positions was determined) is above a verticalvelocity threshold (e.g., 1 m/s), and optionally a horizontal velocityof the mobile phone (e.g., as calculated by dividing an XY distancebetween the two estimated positions by a time elapsed between when eachof the estimated positions was determined) is below the first thresholdassociated with a minimum walking speed (e.g., 1 km/hr).

When the first data includes an estimated position of the mobile device(e.g., from a positioning application of the mobile device, proximity toan access point, or from another known positioning technique), thedetermined location context may specify that the mobile device is at aknown location (e.g., the user's residence, the user's work, or anotherdiscernable location). Alternatively, the determined location contextmay specify that the mobile device is (i) with a user who is on foot ifthe estimated position is on (or within a threshold distance to) ashopping venue, a fitness venue, a public park or other venue where theuser is likely to be walking or running with the mobile device, (ii) onor with a user on a bike if the estimated position is on (or within athreshold distance to) a bike path where the user is likely to be ridinga bike with the mobile device, (iii) in a vehicle if the estimatedposition is on (or within a threshold distance to) a highway orexpressway, (iv) stationary if the estimated position is at the user'sresidence or workplace.

When the first data includes measurement values determined by a pressuresensor of the mobile device, the determined location context may specifythat the mobile device is in a vehicle when the measurement values areturbulent (e.g., measurements of pressure are spread out and varyconsiderably from one to the other), which occurs when ambient airpasses over and around a moving vehicle and the pressure inside thevehicle varies. By way of example, turbulent measurement values can bequantified as (1) the variance or standard deviation of the last Npressure measurements (N=10, for example), over the last T seconds (T=5s, for example), such that if the standard deviation exceeds a threshold(e.g. 10 Pa, for example), the location context is likely “in avehicle”, or (2) the range or maximum minus minimum of measurementscollected of the last N pressure measurements (N=10, for example), overthe last T seconds (T=5 s, for example), such that if the range exceedsa threshold (e.g. 20 Pa, for example), the location context is likely“in a vehicle”.

Second Data

Step 230 of FIG. 2A and step 265 of FIG. 2B identify second data toretrieve based on different considerations (e.g., a determined locationcontext or two more possible estimated heights above a surface at whicha mobile device may reside). Such second data may include one or more of(i) at least one measurement value determined by at least one sensor ofthe mobile device, (ii) at least one status indicator value of a featureof the mobile device, or both (i) and (ii).

Examples of measurements determined by a sensor of the mobile deviceinclude:

-   -   (i) a measurement of orientation retrieved from a gyroscope        sensor of the mobile device (e.g., by querying the gyroscope        sensor API on the mobile device, as is known), where a        measurement of orientation may specify three angles in        three-dimensional space at which three planes (i.e., XY, XZ, YZ)        are respectively located at the time the measurement of        orientation is made, which can be used to determine if the        mobile device is upright, not upright, flat or not flat, as        described further below;    -   (ii) a measurement of light from light sensor of the mobile        device (e.g., by querying the light sensor API on the mobile        device, as is known), where the measurement of light may be        measured in lux and may specify an intensity of light received        by the light sensor (e.g., a camera of the mobile device), which        can be used to determine if the mobile device's surfaces are        obscured (e.g., by a cover, by being placed in a pocket or bag,        or by being placed face down on a counter or table); and/or    -   (iii) a measurement of sound from a microphone of the mobile        device (e.g., obtained by querying an API on the mobile device,        as is known), which can be used to determine if the mobile        device is likely to be in close proximity (e.g., less than a        half a meter) from the user's mouth.

Examples of status indicators of features of the mobile device include:

-   -   (i) a motion status indicator from a pedometer of the mobile        device (e.g., obtained by querying a pedometer API on the mobile        device, as is known), that specifies if a walking or running        motion has been registered by registering steps at a frequency        associated with walking or a frequency associated with running,        or registering a peddling motion associated with biking, which        can be used to determine if the mobile phone is with a user who        is walking, running or biking;    -   (ii) a measurement of battery temperature from a temperature        sensor of the mobile device that measures internal temperature        of the mobile phone near the battery (e.g., obtained by querying        a API on the mobile device, as is known), which can be used to        confirm if the mobile device is outside or inside a bag with        little to no ambient airflow to cool down the mobile device;    -   (iii) a phone call status indicator (e.g., obtained by querying        an API on the mobile device, as is known), which can be used to        determine if the user is actively engaged in a phone call;    -   (iv) a “hands-free” calling status indicator (e.g., obtained by        querying an API on the mobile device, as is known), which can be        used to determine if the user is actively engaged in a phone        call while also determining that the mobile device is unlikely        to be oriented upright against the user's ear (since the        hands-free feature is engaged with a wired or wireless        microphone and speaker adaptor to enables a hands-free        experience), and is instead held front of the user (e.g., for a        video chat), held at the user's waist, or put in the user's        pocket or bag;    -   (v) a speaker calling status indicator (e.g., obtained by        querying an API on the mobile device, as is known), which can be        used to determine if the user is actively engaged in a phone        call while also determining that the mobile device is unlikely        to be oriented upright against the user's ear or unlikely to be        held at the user's waist or put in the user's pocket or bag        (since the speaker feature is engaged), and instead is likely to        be held below the user's mouth in an upper torso area of the        user;    -   (vi) a video calling status indicator (e.g., obtained by        querying an API on the mobile device or determining a camera and        a phone call are simultaneously active, as is known), which can        be used to determine if the user is actively engaged in a phone        call while also determining that the mobile device is unlikely        to be oriented upright against the user's ear or unlikely to be        held at the user's waist or put in the user's pocket or bag        (since the video camera feature is engaged), and instead is        likely to be held in view of the user's head in an upper torso        area of the user;    -   (vii) a video recording status indicator (e.g., obtained by        querying an API on the mobile device, as is known), which can be        used to determine if a user is recording a video using the        mobile device and that the mobile device is not inside a bag or        a pocket of the user or that the mobile device is not being used        for a phone call;    -   (viii) a speedometer use status indicator (e.g., obtained by        querying an API on the mobile device, as is known) specifying if        measurements of a speedometer are being displayed, which can be        used to determine that the mobile device is likely to be        positioned in view of the user; and/or    -   (ix) a battery charging status indicator (e.g., obtained by        querying an API on the mobile device, as is known), which can be        used to determine if the mobile device is plugged into a power        source, and depending on a measurement of voltage, the power        source could be determined to be a wall outlet, a computer, a        car inverter, a portable battery pack, or another type of power        source, which can aid in determining if the mobile device is        likely on furniture like a desk or on the ground or floor (e.g.,        power source is a wall outlet or a computer), resting on a car        console (e.g., power source is a car inverter), or in a pocket        or a bag of a user (e.g., power source is a portable charger).    -   Values of different types of data discussed above may be        retrieved during step 240 or step 275 and used to determine an        estimated height above a surface at which the mobile device is        located during step 250 or step 285 of FIG. 2A or FIG. 2B,        respectively.        Estimating a height above a surface at which the mobile device        is located

Different methods for estimating a height above a surface at which themobile device is location are described in FIG. 3A through FIG. 3Hbelow.

A first method for estimating the height above a surface at which themobile device is located when the determined location context is with auser who is on foot is shown in FIG. 3A.

-   -   The first method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a first status indicator specifying if wired or wireless        hands-free calling is being used, a second status indicator        specifying if speaker phone calling or video calling is being        used, a measurement of light from a light sensor of the mobile        device, a measurement of orientation from a gyroscope of the        mobile device, a motion status indicator from a pedometer of the        mobile device specifying if a walking or running motion has been        registered, a measurement of sound from a microphone of the        mobile device, or a camera status indicator indicating a camera        (e.g., front-facing camera) of the mobile phone is active.    -   A determination is made as to whether the mobile device is being        used to execute a phone call, which may be determined by        retrieving (or not being able to retrieve) a phone call status        indicator that specifies the mobile device is being used to        execute a phone call, or a phone call status indicator that        specifies the mobile device is not being used to execute a phone        call.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height if the mobile device is being used to execute        a phone call, and if the first status indicator is retrieved and        specifies hands-free calling is being used during the phone        call. By way of example, the first predefined height is set to        an assumed height of a user's waist, such as 1.0 meters or a        predefined percentage like 50% of a user's height if obtainable        from profile data of the user, which is an assumed location at        which a mobile device is held by a user or stored in the user's        pocket when hands-free calling is being used during the phone        call.    -   (ii) A second approach determines the estimated height is a        second predefined height if the mobile device is being used to        execute a phone call and if any of the following conditions        apply: (i) the second status indicator is retrieved and        specifies speaker calling or video calling is being used during        the phone call, or (ii) the measurement of light from the light        sensor of the mobile device is retrieved and is above a first        light level (and optionally below a second light level), and the        measurement of orientation from the gyroscope of the mobile        device is retrieved and indicates the mobile device is not in an        upright orientation and optionally the first status indicator is        not retrieved or a retrieved first status indicator specifies        hands-free calling is not being used during the phone call, or    -   (iii) the measurement of sound from the microphone exceeds a        threshold amount of sound associated with user speech that is        emitted within less than a half a meter from the microphone.        Different embodiments of this approach may consider different        combinations of the preceding enumerated conditions (e.g., only        one, some, or all). By way of example, the second predefined        height is set to an assumed height of a user's upper torso, such        as 1.5 meters or a predefined percentage like 75% of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is held by a user when        speaker phone calling or video phone calling is being used        during the phone call or when the light sensor is exposed to        light (e.g., uncovered) and the mobile device is unlikely to be        held against the user's ear (e.g., not in an upright        orientation) but close enough for a microphone of the mobile        device to receive the user's voice and for a speaker to be heard        by the user. Examples of light levels include a first light        level of 10,000 lux and a second light level of 20,000 lux. An        example of a threshold amount of sound includes 50 dB. An        upright orientation may be defined in different ways. In one        implementation, where a mobile device lies in standard Cartesian        coordinates (XYZ), then the mobile device is in an upright        orientation when an angle between a surface of a screen of the        mobile device and the Z-axis (or the ZX axial plane or the ZY        axial plane) is within a maximum threshold (e.g., 20 degrees),        and the mobile phone is not in the upright orientation when the        angle between the surface of the screen of the mobile device and        the Z-axis (or the ZX axial plane or the ZY axial plane) is not        within the maximum threshold (e.g., 20 degrees).    -   (iii) A third approach determines the estimated height is a        third predefined height if the mobile device is being used to        execute a phone call and any of the following conditions        apply: (i) if the first status indicator is not retrieved or a        retrieved first status indicator specifies hands-free calling is        not being used during the phone call, and the second status        indicator is not retrieved or a retrieved second status        indicator specifies speaker or video calling is not being used        during the phone call, or (ii) if the measurement of light from        the light sensor of the mobile device is retrieved and is not        above the first light level, and if the measurement of        orientation from the gyroscope of the mobile device is retrieved        and indicates the mobile device is in the upright orientation.        Different embodiments of this approach may consider different        combinations of the preceding enumerated conditions (e.g., only        one, some, or all). By way of example, the third predefined        height is set to an assumed height of a user's ear, such as 2.0        meters or a predefined percentage like 95% or higher of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is held by a user when        no hands-free or speaker calling is being used during the phone        call, or when no or low light is detected while the mobile        device is held upright against the user's ear.    -   (iv) A fourth approach determines the estimated height is a        fourth predefined height if the mobile device is not being used        to execute a phone call, if the motion status indicator is        retrieved and specifies that a walking or running motion has        been registered, and if the measurement of light from the light        sensor of the mobile device is below a first light level. By way        of example, the fourth predefined height is set to an assumed        height of a user's waist, such as 1.0 meters or a predefined        percentage like 50% of a user's height if obtainable from        profile data of the user, which is an assumed location at which        a mobile device is stored in the user's pocket when no phone        call is active and the light sensor (e.g., a camera) is covered.    -   (v) A fifth approach determines the estimated height is a fifth        predefined height if the mobile device is not being used to        execute a phone call, if the motion status indicator is        retrieved and specifies that a walking or running motion has        been registered, and if the measurement of light from the light        sensor of the mobile device is above the first light level (or a        different light level). By way of example, the fifth predefined        height is set to an assumed height of a user's upper torso, such        as 1.5 meters or a predefined percentage like 75% of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is carried on a user's        arm when the user is walking or running under the preceding        sensed conditions.    -   (vi) A sixth approach determines the estimated height is a sixth        predefined height if the mobile device is not being used to        execute a phone call and if the motion status indicator is not        retrieved or a retrieved motion status indicator specifies that        a walking or running motion has not been registered. By way of        example, the sixth predefined height is set to an assumed height        of a wheeled bag being pulled or pushed by the user, such as 0.5        meters or a predefined percentage like 25% of a user's height if        obtainable from profile data of the user, which is an assumed        location at which a mobile device resides when steps of the user        are not detected while the user is assumed to be walking.    -   (vii) A seventh approach determines the estimated height is a        seventh predefined height if the mobile device is not being used        to execute a phone call and the camera status indicator        indicates a camera (e.g., front camera) is active (e.g.,        capturing images). By way of example, the seventh predefined        height is set to an assumed height of a user's face, such as 2.0        meters or a predefined percentage like 95% or higher of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is held when a user is        taking selfies.    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the first method.

A second method for estimating the height above a surface at which themobile device is located when the determined location context is with auser who is on foot is shown in FIG. 3B.

-   -   The second method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a first status indicator specifying if wired or wireless        hands-free calling is being used, a second status indicator        specifying if speaker phone or video calling is being used, a        measurement of light from a light sensor of the mobile device,        or a measurement of orientation from a gyroscope of the mobile        device.    -   A determination is made that the mobile device is being used to        execute a phone call, which may be determined by retrieving a        phone call status indicator that specifies the mobile device is        being used to execute a phone call.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height if the mobile device is being used to execute        a phone call, and if the first status indicator is retrieved and        specifies hands-free calling is being used during the phone        call. By way of example, the first predefined height is set to        an assumed height of a user's waist, such as 1.0 meters or a        predefined percentage like 50% of a user's height if obtainable        from profile data of the user, which is an assumed location at        which a mobile device is held by a user or stored in the user's        pocket when hands-free calling is being used during the phone        call.    -   (ii) A second approach determines the estimated height is a        second predefined height if the mobile device is being used to        execute a phone call and if any of the following conditions        apply: (i) the second status indicator is retrieved and        specifies speaker calling or video calling is being used during        the phone call, or (ii) the measurement of light from the light        sensor of the mobile device is retrieved and is above a first        light level (and optionally below a second light level), and the        measurement of orientation from the gyroscope of the mobile        device is retrieved and indicates the mobile device is not in an        upright orientation and optionally the first status indicator is        not retrieved or a retrieved first status indicator specifies        hands-free calling is not being used during the phone call,        or (iii) the measurement of sound from the microphone exceeds a        threshold amount of sound associated with user speech that is        emitted within less than a half a meter from the microphone.        Different embodiments of this approach may consider different        combinations of the preceding enumerated conditions (e.g., only        one, some, or all). By way of example, the second predefined        height is set to an assumed height of a user's upper torso, such        as 1.5 meters or a predefined percentage like 75% of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is held by a user when        speaker phone calling or video phone calling is being used        during the phone call or when the light sensor is exposed to        light (e.g., uncovered) and the mobile device is unlikely to be        held against the user's ear (e.g., not in an upright        orientation) but close enough for a microphone of the mobile        device to receive the user's voice and for a speaker to be heard        by the user. Examples of light levels include a first light        level of 10,000 lux and a second light level of 20,000 lux. An        example of a threshold amount of sound includes 50 dB. An        upright orientation may be defined in different ways. In one        implementation, where a mobile device lies in standard Cartesian        coordinates (XYZ), then the mobile device is in an upright        orientation when an angle between a surface of a screen of the        mobile device and the Z-axis (or the ZX axial plane or the ZY        axial plane) is within a maximum threshold (e.g., 20 degrees),        and the mobile phone is not in the upright orientation when the        angle between the surface of the screen of the mobile device and        the Z-axis (or the ZX axial plane or the ZY axial plane) is not        within the maximum threshold (e.g., 20 degrees).    -   (iii) A third approach determines the estimated height is a        third predefined height if the mobile device is being used to        execute a phone call and any of the following conditions        apply: (i) if the first status indicator is not retrieved or a        retrieved first status indicator specifies hands-free calling is        not being used during the phone call, and the second status        indicator is not retrieved or a retrieved second status        indicator specifies speaker or video calling is not being used        during the phone call, or (ii) if the measurement of light from        the light sensor of the mobile device is retrieved and is not        above the first light level, and the measurement of orientation        from the gyroscope of the mobile device is retrieved and        indicates the mobile device is in the upright orientation.        Different embodiments of this approach may consider different        combinations of the preceding enumerated conditions (e.g., only        one, some, or all). By way of example, the third predefined        height is set to an assumed height of a user's ear, such as 2.0        meters or a predefined percentage like 95% or higher of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is held by a user when        no hands-free or speaker calling is being used during the phone        call, or when no or low light is detected while the mobile        device is held upright against the user's ear.    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the second method.

A third method for estimating the height above a surface at which themobile device is located when the determined location context is with auser who is on foot is shown in FIG. 3C.

-   -   The third method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a motion status indicator from a pedometer of the mobile        device specifying if a walking or running motion has been        registered, or a measurement of light from a light sensor of the        mobile device.    -   A determination is made that the mobile device is not being used        to execute a phone call, which may be determined by retrieving a        phone call status indicator that specifies the mobile device is        not being used to execute a phone call, or by not being able to        retrieve a phone call status indicator that specifies the mobile        device is being used to execute a phone call.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height if the mobile device is not being used to        execute a phone call, if the motion status indicator is        retrieved and specifies that a walking or running motion has        been registered, and if the measurement of light from the light        sensor of the mobile device is below a first light level. By way        of example, the first predefined height is set to an assumed        height of a user's waist, such as 1.0 meters or a predefined        percentage like 50% of a user's height if obtainable from        profile data of the user, which is an assumed location at which        a mobile device is stored in the user's pocket when no phone        call is active and the light sensor (e.g., a camera) is covered.    -   (ii) A second approach determines the estimated height is a        second predefined height if the mobile device is not being used        to execute a phone call, if the motion status indicator is        retrieved and specifies that a walking or running motion has        been registered, and if the measurement of light from the light        sensor of the mobile device is above the first light level (or a        different light level). By way of example, the second predefined        height is set to an assumed height of a user's upper torso, such        as 1.5 meters or a predefined percentage like 75% of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device is carried on a user's        arm when the user is walking or running under the preceding        sensed conditions.    -   (iii) A third approach determines the estimated height is a        third predefined height if the mobile device is not being used        to execute a phone call and if the motion status indicator is        not retrieved or a retrieved motion status indicator specifies        that a walking or running motion has not been registered. By way        of example, the third predefined height is set to an assumed        height of a wheeled bag being pulled or pushed by the user, such        as 0.5 meters or a predefined percentage like 25% of a user's        height if obtainable from profile data of the user, which is an        assumed location at which a mobile device resides when steps of        the user are not detected while the user is assumed to be        walking.

(iv) A fourth approach determines the estimated height is a fourthpredefined height if the mobile device is not being used to execute aphone call and the camera status indicator indicates a camera (e.g.,front camera) is active (e.g., capturing images). By way of example, thefourth predefined height is set to an assumed height of a user's face,such as 2.0 meters or a predefined percentage like 95% or higher of auser's height if obtainable from profile data of the user, which is anassumed location at which a mobile device is held when a user is takingselfies.

Any number of the above approaches—e.g., from only one to all—may beused in different embodiments of the third method.

A fourth method for estimating the height above a surface at which themobile device is located when the determined location context is on abike or with a user who is on a bike is shown in FIG. 3D.

-   -   The fourth method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a measurement of light from a light sensor of the mobile        device, a measurement of orientation from a gyroscope of the        mobile device, a video recording status indicator specifying if        video is being recorded by a camera of the mobile device, or a        speedometer use status indicator specifying if travel        information displayed on a screen of the mobile device. By way        of example, travel information may include speed, distance        traveled, or other data.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height if the measurement of light from the light        sensor of the mobile device is retrieved and is below a first        light level. By way of example, the first predefined height is        set to an assumed height of a bike feature like a seat or a bag        attached to the bike or carried by a user, such as 1.0 meters or        an actual height of the bike feature if obtainable from profile        data of the user, which is an assumed location at which a mobile        device is stored in a user's pocket or a bag when the user is        riding a bike and no light above a certain level is detected.    -   (ii) A second approach determines the estimated height is a        second predefined height if any of the following conditions        apply: (i) the measurement of light from the light sensor of the        mobile device is retrieved and is above the first light level        (or another light level), and the measurement of orientation        from the gyroscope of the mobile device is retrieved and        indicates the mobile device is not in an upright orientation,        or (ii) the speedometer use status indicator is retrieved and        specifies that travel information is displayed on a screen of        the mobile device. Different embodiments of this approach may        consider different combinations of the preceding enumerated        conditions (e.g., only one, some, or all). By way of example,        the second predefined height is set to an assumed height of a        bike feature like a handlebar, such as 1.0 meters or an actual        height of the bike feature if obtainable from profile data of        the user, which is an assumed location at which a mobile device        is carried when the user is riding a bike, light above a certain        level is detected and the orientation if not upright so as to        allow the user to view the screen of the mobile device while        riding the bike. An upright orientation may be defined in        different ways. In one implementation, where a mobile device        lies in standard Cartesian coordinates (XYZ), then the mobile        device is in an upright orientation when an angle between a        surface of a screen of the mobile device and the Z-axis (or the        ZX axial plane or the ZY axial plane) is within a maximum        threshold (e.g., 20 degrees), and the mobile phone is not in the        upright orientation when the angle between the surface of the        screen of the mobile device and the Z-axis (or the ZX axial        plane or the ZY axial plane) is not within the maximum threshold        (e.g., 20 degrees).    -   (iii) A third approach determines the estimated height is a        third predefined height if any of the following conditions        apply: (i) the measurement of light from the light sensor of the        mobile device is retrieved and is above the first light level        (or another light level), and the measurement of orientation        from the gyroscope of the mobile device is retrieved and        indicates the mobile device is in the upright orientation,        or (ii) the video recording status indicator specifies that        video is being recorded and the measurement of orientation from        the gyroscope of the mobile device is retrieved and indicates        the mobile device is in the upright orientation. Different        embodiments of this approach may consider different combinations        of the preceding enumerated conditions (e.g., only one, some, or        all). By way of example, the third predefined height is set to        an assumed height of a bike's handlebars or a user's head when        riding on that bike, such as 1.0 or 2.0 meters, which are        assumed locations at which a mobile device is carried when the        mobile device is recording video. Since two locations of        different heights are assumed as possible locations for the        mobile device, additional processing can be performed to select        from the different locations (e.g., images recorded by a camera        of the mobile device can be viewed to determine if a particular        item like the user's hands or handlebars can be seen at a        particular part of the image like the bottom of the image, and a        conclusion is made that the assumed height is the user's head of        2.0 meters since the particular item is recognized as the        particular part of the image).    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the fourth method.

A fifth method for estimating the height above a surface at which themobile device is located when the determined location context is in avehicle is shown in FIG. 3E.

-   -   The fifth method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a measurement of light from a light sensor of the mobile        device, a measurement of orientation from a gyroscope of the        mobile device, a battery charging status indicator specifying if        a battery of the mobile device is charging, a phone call status        indicator that specifies if the mobile device is being used to        execute a phone call, a first status indicator specifying if        wired or wireless hands-free calling is being used during an        active phone call, or a second status indicator specifying if        speaker phone calling is being used during an active phone call.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height if any of the following conditions apply: (i)        the measurement of light from the light sensor of the mobile        device is retrieved and is below a first light level, or (ii)        the measurement of light from the light sensor of the mobile        device is retrieved and is above the first light level (or        another light level) and the battery charging status indicator        is retrieved and specifies the battery of the mobile device is        charging, or (iii) the battery charging status indicator is        retrieved and specifies the battery of the mobile device is        charging and the phone call status indicator is retrieved and        specifies the mobile device is not being used to execute a phone        call, or (iv) the first status indicator is retrieved and        specifies hands-free calling is being used during an active        phone call. Different embodiments of this approach may consider        different combinations of the preceding enumerated conditions        (e.g., only one, some, or all). By way of example, the first        predefined height is set to an assumed height of seat in a        vehicle, such as 0.75 meters or an actual height of the seat if        obtainable from profile data of the user, which is an assumed        location at which a mobile device is stored in a user's pocket,        stored in a bag/purse on a seat, or lying face down on the seat,        center console platform or lap of the user (when no light above        a certain level is detected), lying face up on the seat, center        console or lap (when light above a certain level is detected and        a battery is charging, or when the battery is charging and no        phone call is being made), or any of the previous assumed        locations when hands-free calling is being used during an active        call.    -   (ii) A second approach determines the estimated height is a        second predefined height if any of the following conditions        apply: (i) the second status indicator is retrieved and        specifies speaker phone calling is being used during the phone        call, or (ii) the phone call status indicator is retrieved and        specifies the mobile device is being used to execute a phone        call, the measurement of light from the light sensor of the        mobile device is retrieved and is above the first light level,        and the measurement of orientation from the gyroscope of the        mobile device is retrieved and indicates the mobile device is        not in an upright orientation. Different embodiments of this        approach may consider different combinations of the preceding        enumerated conditions (e.g., only one, some, or all). By way of        example, the second predefined height is set to an assumed        height of a user's upper torso while the user is seated in a        vehicle seat such as 1.25 meters, or a predefined distance such        as 0.5 meters above a height of the car seat if obtainable from        profile data of the user, which is an assumed location at which        a mobile device is held by a user when speaker phone calling is        being used during the phone call.    -   (iii) A third approach determines the estimated height is a        third predefined height if the phone call status indicator is        retrieved and specifies the mobile device is being used to        execute a phone call and any of the following conditions        apply: (i) the first status indicator is not retrieved or        specifies hands-free calling is not being used during the phone        call (and optionally the second status indicator is not        retrieved or specifies speaker calling is not being used during        the phone call) or (ii) the measurement of light from the light        sensor of the mobile device is retrieved and is not above the        first light level (or another light level) or (iii) the        measurement of orientation from the gyroscope of the mobile        device is retrieved and indicates the mobile device is in an        upright orientation. Different embodiments of this approach may        consider different combinations of the preceding enumerated        conditions (e.g., only one, some, or all). By way of example,        the third predefined height is set to an assumed height of a        user's ear while the user is seated in a vehicle seat such as        1.75 meters, or a predefined distance such as 1.0 meters above a        height of the car seat if obtainable from profile data of the        user, which is an assumed location at which a mobile device is        held by a user when no hands-free or speaker calling is being        used during the phone call.    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the fifth method.

A sixth method for estimating the height above a surface at which themobile device is located when the determined location context is on thesurface after being dropped is shown in FIG. 3F.

-   -   The sixth method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: one or more measurements from an accelerometer of the        mobile device and/or one or more measurements from a pressure        sensor of the mobile device.    -   The estimated height above the surface at which the mobile        device is located is determined using one or more of the        following approaches for determining the estimated height.    -   (i) A first approach determines the estimated height is a first        predefined height (e.g., 0 meters, which is an assumed location        at which a mobile device is on the surface after the mobile        device has been dropped) by determining a first measurement of        the accelerometer specifies a fall (e.g., up to g=9.8        m/s{circumflex over ( )}2 of acceleration along the z-axis) and        a subsequent measurement of the accelerometer specifies a        resting state (e.g., 0 m/s{circumflex over ( )}2 of        acceleration).    -   (ii) A second approach determines the estimated height is the        first predefined height by determining a measurement of the        accelerometer specifies an impact of the mobile device against a        hard surface (e.g., up to 10*g=10*9.8 m/s{circumflex over ( )}2        of acceleration along the z-axis) and (optionally) a subsequent        measurement of the accelerometer specifies a resting state        (e.g., 0 m/s{circumflex over ( )}2 of acceleration).    -   (iii) A third approach determines the estimated height is the        first predefined height by determining that (i) a first        measurement of pressure and a subsequent second measurement of        pressure were both measured by the pressure sensor of the mobile        device during a time period that does not exceed a threshold        amount of time (e.g., 1 second), and (ii) the second measurement        of pressure is higher than the first measurement of pressure,        where the relatively higher second measurement of pressure        reflects a relatively lower altitude of the mobile device after        falling from a first altitude at which the first measurement of        pressure was measured.    -   (iv) specifies a first pressure corresponding to a first        altitude before a fall and a second measurement of the pressure        sensor specifies a second (higher) pressure corresponding to a        second (lower) altitude after the fall while the mobile device        is in a resting state (i.e., additional pressure measurements        are within a threshold amount of pressure associated with no        movement of the mobile device, but accounting for possible error        amount measurements of the same pressure). These values can be        retrieved from cache and compared.    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the sixth method.    -   In some embodiments, where a height is known before a mobile        device is dropped, knowledge of the dropped location context of        the mobile device can be used to determine a new height relative        to the height before the mobile device was dropped. For example,        a barometric formula (h_(dropped)=−(RT/gM)In        (Pressure_(before)/Pressure_(after)) can be used to translate a        pressure difference to an amount of height over which the mobile        device dropped, and that amount of height can be subtracted from        the height before the mobile device was dropped to determine the        height of the mobile device after being dropped. By way of        another example, an amount of z-axis acceleration over time or        an acceleration impact value (e.g. 10*g or 98 m/s{circumflex        over ( )}2) can be mapped to an amount of height over which the        mobile device dropped (e.g., where 10*g roughly translates to 1        m of falling, which may be determined from lab testing and be        unique to each mobile device or mobile device cover/bumper), and        that amount of height can be subtracted from the pre-drop height        of the mobile device to determine the height of the mobile        device after being dropped.

A seventh method for estimating the height above a surface at which themobile device is located when the determined location context isstationary is shown in FIG. 3G and FIG. 3H.

-   -   The seventh method may be used when the second data includes        different combinations of measurements or indicators that are        used by different approaches described below. By way of example,        different combinations of measurements or indicators may include        any of: a battery charging status indicator specifying if a        battery of the mobile device is charging, a measurement of        orientation from a gyroscope of the mobile device, a measurement        of light from a light sensor of the mobile device, a measurement        of battery temperature from a temperature sensor of the mobile        device, a phone call status indicator specifying if video        calling is active, a camera status indicator specifying if a        camera is capturing images, or data specifying an area within        which the mobile device is located. By way of example, the data        specifying an area within which the mobile device is located may        be determined from detecting overlap between a known location of        the area and an estimated position of the mobile device, from        determining that the mobile device is communicating with an        access point (e.g., a WiFi beacon) that is only accessible        within the area, from receiving user input designating the area,        or any other known approach that determines such an area.

The estimated height above the surface at which the mobile device islocated is determined using one or more of the following approaches fordetermining the estimated height.

-   -   (i) A first approach determines the estimated height is a first        predefined height if any of the following conditions apply: (i)        the battery charging status indicator is retrieved and specifies        the battery of the mobile device is charging, the measurement of        orientation from the gyroscope of the mobile device is retrieved        and indicates the mobile device is in a flat orientation, and        the data specifying the area within which the mobile device is        located is retrieved and specifies the mobile device is inside a        first type of location in which the mobile phone is likely        resting on a table, desk or counter top, or (ii) the battery        charging status indicator is retrieved and specifies the battery        of the mobile device is not charging, the measurement of light        from the light sensor of the mobile device is retrieved and is        not above a first light level, and the measurement of        orientation from the gyroscope of the mobile device is retrieved        and indicates the mobile device is in a flat orientation,        or (iii) the battery charging status indicator is retrieved and        specifies the battery of the mobile device is not charging, the        measurement of light from the light sensor of the mobile device        is retrieved and is above the first light level (or another        light level), and the measurement of orientation from the        gyroscope of the mobile device is retrieved and indicates the        mobile device is in a flat orientation, or (iv) the measurement        of battery temperature is retrieved and indicates the battery        temperature of the mobile device is below a first temperature        level, the measurement of orientation from the gyroscope of the        mobile device is retrieved and indicates the mobile device is in        a flat orientation, and (optionally) the battery charging status        indicator is retrieved and specifies the battery of the mobile        device is not charging, or (v) an application for presenting        media (e.g., music or video) is active. Different embodiments of        this approach may consider different combinations of the        preceding enumerated conditions (e.g., only one, some, or all).        By way of example, the first predefined height is set to an        assumed height at a first type of location like a residence or a        workplace of the user of a table, desk or counter top such as        1.0 meters or an actual height of the table, desk or countertop        if obtainable from profile data of the user, which is an assumed        location at which a mobile device is positioned when in a flat        orientation and charging, when not charging with no sensed light        above a threshold amount of light, when not charging with sensed        light above the threshold amount of light, when battery        temperature is below a threshold amount of temperature (e.g., 40        degrees Celsius) indicative of a maximum internal temperature of        the mobile phone when the mobile phone is not enclosed in a        thing like a bag or a pocket and has adequate airflow since the        internal battery temperature in a mobile device is usually        somewhere from 0-15 degrees Celsius hotter than ambient        temperature, which is usually 25-40 degrees Celsius, or when a        media-presenting application is actively outputting media. In        one embodiment, the first temperature level is below 40 degrees        Celsius. A flat orientation may be defined in different ways. In        one implementation, where a mobile device lies in standard        Cartesian coordinates (XYZ), then the mobile device is in a flat        orientation when an angle between a screen of the mobile device        and the XY-axial plane (or the X axis and/or the Y axis) is        within a maximum threshold (e.g., 15 degrees), and the mobile        phone is otherwise not in the flat orientation when the angle        between the screen of the mobile device and the XY-axial plane        (or the X axis and/or the Y axis) is not within the maximum        threshold (e.g., 15 degrees).    -   (ii) A second approach determines the estimated height is a        second predefined height if the battery charging status        indicator is retrieved and specifies the battery of the mobile        device is charging, if the measurement of orientation from the        gyroscope of the mobile device is retrieved and indicates the        mobile device is in the flat orientation, and if the data        specifying the area within which the mobile device is located is        retrieved and specifies the mobile device is inside a second        type of location in which the mobile phone is likely positioned        on a chair, a lap of the user, or in a pocket of a bag lying on        the surface. By way of example, the second predefined height is        set to an assumed height of part (e.g., compartment) of a bag        resting on the surface, a seat, or a lap of a user such as 0.5        meters, or an actual height of pocket in the bag or the seat if        obtainable from profile data of the user or another data source,        which is an assumed location at which a mobile device is stored        at a publicly-used space like an airport, mall, hospital,        convention center, coffee shop or other place while the mobile        device is charging. By way of example, the second type of        location may be a residence or a workplace.    -   (iii) A third approach determines the estimated height is a        third predefined height if the measurement of light from the        light sensor of the mobile device is retrieved and is not above        a first light level, the measurement of orientation from the        gyroscope of the mobile device is retrieved and indicates the        mobile device is not in a flat orientation and (optionally) the        battery charging status indicator is retrieved and specifies the        battery of the mobile device is not charging. By way of example,        the third predefined height is set to an assumed height at which        the mobile device is being held by a sitting or standing user        for different purposes such as 1.0 to 2.0 meters, which is an        assumed location at which a mobile device is positioned when        being held by a user in a non-flat orientation for various        purposes like viewing digital material or a game on a screen of        the mobile device while sitting, or capturing images with a        camera of the mobile device while standing. Additional        conditions could be tested, such as determining if digital        material is being displayed on the screen, images are being        captured by the camera, or a game is actively displayed by the        screen, and a particular height could be selected from a        plurality of heights associated with the conditions—e.g., 1.0        meters if digital media or a game are displayed, 2.0 meters or        an obtainable height of the user if images are being captured.    -   (iv) A fourth approach determines the estimated height is a        fourth predefined height (e.g., 1.0 meters) or undeterminable if        any of the following conditions apply: (i) the battery charging        status indicator is retrieved and specifies the battery of the        mobile device is charging, and the measurement of orientation        from the gyroscope of the mobile device is retrieved and        indicates the mobile device is not in the flat orientation,        or (ii) the battery charging status indicator is retrieved and        specifies the battery of the mobile device is not charging, the        measurement of light from the light sensor of the mobile device        is retrieved and is not above the first light level, and the        measurement of orientation from the gyroscope of the mobile        device is retrieved and indicates the mobile device is not in        the flat orientation. Different embodiments of this approach may        consider different combinations of the preceding enumerated        conditions (e.g., only one, some, or all). By way of example,        the fourth predefined height can be an average height of        possible heights (e.g., average of 0.5 and 1.0 meters), or        another type of height value, at which the mobile device is        assumed to be potentially located when the mobile device is not        in a flat orientation while its battery is charging, or when the        mobile device is not in a flat orientation and is not sensing        light while its battery is not charging, such as when the mobile        device may be in a bag that is on the surface, a seat or table.    -   (v) A fifth approach determines the estimated height is a fifth        predefined height (e.g., 1.0 meters) or undeterminable if any of        the following conditions apply: (i) the measurement of battery        temperature is retrieved and indicates the battery temperature        of the mobile device is below the first temperature level, the        measurement of orientation from the gyroscope of the mobile        device is retrieved and indicates the mobile device is not in a        flat orientation, and (optionally) the battery charging status        indicator is retrieved and specifies the battery of the mobile        device is not charging, or (ii) the measurement of battery        temperature is retrieved and indicates the battery temperature        of the mobile device is not below the first temperature level,        and (optionally) the battery charging status indicator is        retrieved and specifies the battery of the mobile device is not        charging. Different embodiments of this approach may consider        different combinations of the preceding enumerated conditions        (e.g., only one, some, or all). By way of example, the fifth        predefined height can be an average height of possible heights        (e.g., average of 0.5 and 1.0 meters), or another type of height        value, at which the mobile device is assumed to be potentially        located when overheating or not in a flat orientation, such as        when the mobile device may be not charging in a bag that is on        the surface, a seat or table.    -   (vi) A sixth approach determines the estimated height is a sixth        predefined height (e.g., 1.5 meters) if the phone call status        indicator is retrieved and specifies that video calling is        active. By way of example, the sixth predefined height is set to        an assumed height of a standing user's upper torso, such as 1.5        meters or a predefined percentage like 75% of a user's height if        obtainable from profile data of the user, which is an assumed        location at which a mobile device is held by a user when video        phone calling is active.    -   (vii) A seventh approach determines the estimated height is a        seventh predefined height (e.g., 2.0 meters) if the camera        status indicator is retrieved and specifies that a camera is        capturing images. By way of example, the seventh predefined        height is set to an assumed height of a standing user's face,        such as 2.0 meters or a predefined percentage like 95% or higher        of a user's height if obtainable from profile data of the user,        which is an assumed location at which a mobile device is held        when a user is taking selfies.    -   Any number of the above approaches—e.g., from only one to        all—may be used in different embodiments of the seventh method.

Alternatively, the determined location context could be at a knownlocation (e.g., a user's residence or work), and second data couldinclude different types of data that could be used to determine apredefined height at which the mobile device is assumed to be locatedinside the known location. Uses of the types of data and conclusionsabout predefined heights could be the same uses and conclusions as thelocation contexts of stationary and with a user who is on foot, oradditional uses and conclusions as to predefined heights.

-   -   Examples of particular types of data that may be retrieved        include: (i) data indicating if a battery of the mobile device        is charging, (ii) data indicating an orientation of the mobile        device is in a particular orientation such as flat, not flat,        upright, or not upright, (iii) data indicating a light sensor of        the mobile device is measuring light above or below a first        level of light, (iv) data indicating an inertial sensor of the        mobile device measures particular types of movement (e.g., no        movement of the mobile device, movement with a walking or        running user), (v) data indicating a phone call is or is not        active on the mobile device, (vi) data indicating hands-free        calling or speaker calling is or is not being used during an        active phone call, (vii) data indicating images are being        captured by a camera of the mobile device, (viii) data        indicating digital media or a game is being displayed on a        screen of the mobile device, or (ix) data indicating a battery        temperature is or is not below a first temperature level.    -   Examples of uses and conclusions may include any combination of        one or more of: (a) concluding the predefined height of the        mobile device is 1.0 meters or a height of a countertop, desk or        table if data indicates that a battery of the mobile device is        charging, or an orientation of the mobile device is in a flat        orientation, or data indicating an inertial sensor of the mobile        device measures no movement, or hands-free calling is being used        during a phone call; (b) concluding the predefined height of the        mobile device is 1.0 meters or a height at the middle of a        sitting user's upper torso if data indicates that digital media        or a game is being displayed on a screen of the mobile device;        or (c) concluding the predefined height of the mobile device is        1.5 or 2.0 meters or a height of a user's ear when the user is        respectively sitting or standing if data indicates that a phone        call is active on the mobile device and the orientation of the        phone is upright or no hands-free or speaker calling is active        during the phone call where a selection of 1.5 meters could be        made if no walking movement is detected by an inertial sensor, a        selection of 2.0 meters could be made if walking movement is        detected by an inertial sensor, an average of 1.75 meters is        used if sitting or standing cannot be determined, or a first        predefined height (e.g., 1.5 meters) is selected over a second        predefined height (e.g., 2.0 meters) if the sum of a known        altitude of the surface and the first predefined height is        closer to an estimated altitude of the mobile device than the        sum of the known altitude of the surface and the second        predefined height.

Different embodiments are contemplated for performing differentcombinations of the processes described herein, including embodimentsfor performing different combinations of the processes enumerated forestimating a height above a surface at which the mobile device islocated based on second data—e.g., the methods of FIG. 3A through FIG.3H—and the methods enumerated for determining a location context basedon first data—e.g., the first through tenth sets of embodiments and anyother enumerated embodiments for determining a location context based onfirst data. By way of illustration, some embodiments may perform themethods of FIG. 3A, FIG. 3D, FIG. 3E, FIG. 3F, and FIGS. 4G-4H (whereeach embodiment performs different combinations of the approachesdescribed for each method). Other embodiments may individually performthe method of FIG. 3A, FIG. 3D, FIG. 3E, FIG. 3F, and FIGS. 4G-4H, ordifference combinations thereof. When multiple types of second data areenumerated for a location context, not all enumerated types of seconddata for that location context need to be used, retrieved or testedagainst conditions to determine particular predefined heights. Differentembodiments of a particular location context may use, retrieve and testdifferent types of enumerated second data. For example, some embodimentsuse and retrieve only the type(s) of second data needed to test only oneor some of the enumerated groups of conditions listed for determining ifan enumerated predefined height is the estimated height. When multipleconditional tests of second data are enumerated as possible fordetermining when the estimated height is a particular predefined height,not all enumerated conditional tests of second data for that particularpredefined height need to be performed, such that different embodimentsof determining if the estimated height is a particular predefined heightmay test different types of second data against their respectiveconditions. When testing conditions of a group of second data types todetermine if the estimated height is a particular predefined height, thetesting of that group can stop when one of the conditions of one of thesecond data types is not satisfied. Similarly, when multiple predefinedheights are enumerated as possible for a location context (e.g., first,second, . . . , Nth predefined heights), not all enumerated predefinedheights need to be used or considered, such that different embodimentsmay determine if the estimated height is a predefined height from amongdifferent groups of enumerated predefined heights for a locationcontext, wherein a group includes one or more predefined height. Thus,different embodiments may use different combinations of any of theenumerated location contexts, different types of the second dataenumerated for those location contexts, and different predefined heightsenumerated for those location contexts.

Values of estimated heights described herein are illustrative and arenot the only possible heights. Although meters have been predominantlyused to illustrate possible heights above a surface, any measurementunits of height may be used.

In some embodiments, a predefined range of heights (e.g., 1.5 to 2.25meters) can be used instead of a singular height (e.g., 2.0 meters),which may be useful to account for an unknown height of the user orother things (e.g., car seats, pockets in bags, locations of bags onthings, etc.). When a range of predefined heights is used, a predefinedheight (e.g., 1.5 meters or 2.25 meters) within the outer height limitsof the range (e.g., 1.5 to 2.25 meters) can be used as the estimatedheight if that predefined height matches a difference between an initialestimated altitude of the mobile device and a known altitude of thesurface, or either of the outer height limits of the range are used asthe estimated height if the predefined height of that outer height limitis closer to the difference, which assumes that the closer a predefinedheight is to the difference the more accurate that predefined height iscompared to other predefined heights. This assumption reduces the chanceof too much calibration that could occur if the other outer height limitwere used. The same approach can be used when a range is not used, buttwo or more possible predefined heights are used, where selection fromamong the possible predefined heights involves selecting the closest ofthe predefined heights to the difference.

In some uses of the processes described herein, the height of a mobiledevice could be determined to a fine degree (e.g., within 1 foot, 1 inchor another distance of actual height), which could be useful fordirecting a user to a specific item at a specific height (e.g., on ashelf, where the mobile device could direct the user to “look down oneshelf to find the low sodium chicken noodle soup.”) Of course, such finedegree of accuracy need not always be achieved during each use of eachprocess described herein, and looser degrees of accuracy are tolerated(e.g., within 0.5-1.0 meters of actual height) for other uses discussedin relation to step 260 of FIG. 2A and step 295 of FIG. 2B.

Different possible heights above a surface (e.g., ground or floor) atwhich a mobile device may be located have been described herein. In someembodiments, the height of a thing on or in which a mobile phone isexpected to reside is known (e.g., a height of a counter, desk, table,pants pocket, handlebars of a bike, console of a car, etc.), and can beused as a possible estimated height. Such known heights can be surveyedover time or retrieved from a data source. In some embodiments, heightsof things can be adjusted based on heights of other things (e.g., aheight of pants pockets can be adjusted by a height of shoes a user iswearing (e.g., flats, boots, heels, etc.).

Calibration

Different approaches exist for estimating an altitude of a mobile device(e.g., the mobile device 120 of FIG. 1). In a barometric-basedpositioning system, altitude can be computed using a measurement ofpressure from a pressure sensor of a mobile device along with ambientpressure measurement(s) from a network of calibrated reference pressuresensors and a measurement of ambient temperature from the network orother source. An estimate of an altitude of a mobile device(altitude_(mobile)) can be computed by the mobile device, a server, oranother machine that receives needed information as follows:

$\begin{matrix}{{{altitude}_{mobile} = {{altitude}_{sensor} - {\frac{RT}{gM}{\ln\left( \frac{P_{sensor}}{P_{mobile}} \right)}}}},} & \left( {{Equation}\mspace{14mu} 2} \right)\end{matrix}$where P_(mobile) is an estimate of pressure that needs to be accurate towithin a tolerated amount of pressure from true pressure (e.g., lessthan 5 Pa) at the location of the mobile device as measured by apressure sensor of the mobile device P_(sensor) is an estimate ofpressure at the location of a reference pressure sensor, T is anestimate of temperature (e.g., in Kelvin) at the location of thereference pressure sensor or a different location of a remotetemperature sensor, altitude_(sensor) is an estimated altitude of thereference pressure sensor that is estimated to within a desired amountof altitude error (e.g., less than 1.0 meters), g corresponds to theacceleration due to gravity, R is a gas constant, and M is molar mass ofair (e.g., dry air or other). The minus sign (−) may be substituted witha plus sign (+) in alternative embodiments of Equation 2, as would beunderstood by one of ordinary skill in the art. The estimate of pressureat the location of the reference pressure sensor can be converted to anestimated reference-level pressure that corresponds to the referencepressure sensor in that it specifies an estimate of pressure at thelatitude and longitude of the reference pressure sensor, but at areference-level altitude that likely differs from the altitude of thereference pressure sensor. The reference-level pressure can bedetermined as follows:

$\begin{matrix}{{P_{ref} = {P_{sensor} \times {\exp\left( {- \frac{{gM}\left( {{altitude}_{ref} - {altitude}_{sensor}} \right)}{RT}} \right)}}},} & \left( {{Equation}\mspace{14mu} 3} \right)\end{matrix}$where P_(sensor) is the estimate of pressure at the location of thereference pressure sensor, P_(ref) is the reference-level pressureestimate, and h_(ref) is the reference-level altitude. The altitude ofthe mobile device altitude_(mobile) can be computed using Equation 3,where altitude_(ref) is substituted for altitude_(sensor) and P_(ref) issubstituted for P sensor as follows:

$\begin{matrix}{{altitude}_{mobile} = {{altitude}_{ref} - {\frac{RT}{gM}{{\ln\left( \frac{P_{ref}}{P_{mobile}} \right)}.}}}} & \left( {{Equation}\mspace{14mu} 4} \right)\end{matrix}$The reference-level altitude altitude_(ref) may be any altitude and isoften set at mean sea-level (MSL). When two or more reference-levelpressure estimates are available, the reference-level pressure estimatesare combined into a single reference-level pressure estimate value(e.g., using an average, weighted average, or other suitable combinationof the reference pressures), and the single reference-level pressureestimate value is used for the reference-level pressure estimateP_(ref).

The pressure sensor of the mobile device is typically inexpensive andsusceptible to drift over time. Consequently, the pressure sensor of themobile device must be frequently calibrated to ensure measurements ofpressure at the altitude of the mobile device have accuracy needed foraccurate estimates of the mobile device's altitude. One approach forcalibrating a pressure sensor of a mobile device determines acalibration adjustment (C) that, when applied to a measurement ofpressure by the pressure sensor (P_(mobile)), results in an estimatedaltitude (altitude_(mobile)) that is within a tolerated amount ofdistance from the true altitude at which a mobile device resides(altitude_(truth)). One such approach uses the following formula tosolve for the calibration adjustment (C):

$\begin{matrix}{{altitude}_{truth} = {h_{ref} - {\frac{RT}{gM}{{\ln\left( \frac{P_{ref}}{P_{mobile} + C} \right)}.}}}} & \left( {{Equation}\mspace{14mu} 5} \right)\end{matrix}$

-   -   The true altitude at which a mobile device resides        (altitude_(truth)) can be replaced by a combination of a known        altitude of a surface (altitude_(surface)) and the estimated        height above the surface at which the mobile device is located        (h_(estimated)) as follows:        altitude_(truth)=altitude_(surface) +h _(estimated)  (Equation        6),        which results in:

$\begin{matrix}{{{altitude}_{surface} + h_{estimated}} = {h_{ref} - {\frac{RT}{gM}{\ln\left( \frac{P_{ref}}{P_{mobile} + C} \right)}}}} & \left( {{Equation}\mspace{14mu} 7} \right)\end{matrix}$

-   -   Alternatively, the left and right sides of Equation 7 need not        be equal, and instead need only be within a tolerated amount of        altitude from each other, such as 0.0 to 0.5 meters.    -   The known altitude of the surface (altitude_(surface)) can be        determined in different ways. For example, an identifier of the        surface can be determined, and the identifier can be used to        look up the altitude of the surface from a floor or terrain        database. Identifier determination can be accomplished in        different ways—e.g., user input identifying the surface,        detection of communication between the mobile device and a        device (e.g., a point-of-sale system, a thermostat, a Wi-Fi        beacon) that resides in an area associated with the surface, an        initial estimated position of the mobile device that is within        an area of the surface, or other methods.

Alternatively, pressure can be differentiated with respect to height andused to help determine the calibration value (C) as described below. Forexample,

$\begin{matrix}{P_{{at}\mspace{14mu}{altitude}_{1}} = {P_{{at}\mspace{14mu}{altitude}_{2}}{\exp\left( \frac{{gM}\left( {{altitude}_{2} - {altitude}_{1}} \right)}{RT} \right)}}} & \left( {{Equation}\mspace{14mu} 8} \right)\end{matrix}$can be used to derive the following formula

$\begin{matrix}{{\frac{dP}{dh} = {\frac{{gM}P}{RT} \approx {0.034\frac{P}{T}}}},} & \left( {{Equation}\mspace{14mu} 9} \right)\end{matrix}$where P represents the mobile pressure in this specific context as itshows how a small height discrepancy of the mobile device can translateinto a calibration value for the pressure sensor of the mobile device.Thus, the calibration value (C) can be determined as shown below:

$\begin{matrix}{{C = {\left( {{altitude}_{truth} - {altitude}_{mobile}} \right) \times \frac{dP}{dh}}},} & \left( {{Equation}\mspace{14mu} 10} \right)\end{matrix}$wherealtitude_(truth)=altitude_(surface) +h _(estimated)  (Equation 11).Technical Benefits

Mobile devices are used to estimate altitudes of their users indifferent environments or to estimate altitudes of surfaces (e.g.,floors in a building or outdoor ground surfaces) at which the mobiledevices reside. When estimated altitudes are based on (i) referencepressures from a network of reference pressure sensors and (ii)measurements of pressure from pressure sensors of the mobile devices,limitations in the functionality of pressure sensors in mobile devicessuch as sensor drift over time can impact the accuracy of estimatedmobile device altitudes by up to several meters, or can prevent accuracyto within a threshold amount of altitude (e.g., 1.0 meters or less).Regular calibration of pressure sensors in mobile devices is arequirement for accurate altitude estimates. Past approaches forcalibrating a pressure sensor relative to a known altitude of a surfacemake assumptions for the unknown height at which the mobile device islocated above the surface, but these assumptions can introduce errorinto the calibration result where the true height of the mobile deviceabove the surface differs from the assumed height by more than athreshold amount of height (0.5 or 1.0 meters). When estimated altitudesof mobile devices are determined using altitudes of surfaces over whichmobile devices are located, uncertainty as to heights of the mobiledevices above the surfaces introduced by lack of technology fordetermining those heights can impact the accuracy of estimated mobiledevice altitudes by up to several meters or can prevent accuracy towithin a threshold amount of altitude (e.g., 1.0 meters or less).Processes described herein overcome the above technical limitations andgenerate new and useful data—e.g., improved estimated heights abovesurfaces that are more accurate and more reliable compared to assumedheights or unknown heights. The improved estimated heights produced bythe processes described herein enable (i) improved calibration results,(ii) improved estimated positions that enable quicker emergency responsetimes or otherwise improve the usefulness of estimated positions, and(iii) improved estimated altitudes of surfaces.

Other Aspects

Any method (also referred to as a “process” or an “approach”) describedor otherwise enabled by disclosure herein may be implemented by hardwarecomponents (e.g., machines), software modules (e.g., stored inmachine-readable media), or a combination thereof. In particular, anymethod described or otherwise enabled by disclosure herein may beimplemented by any concrete and tangible system described herein. By wayof example, machines may include one or more computing device(s),processor(s), controller(s), integrated circuit(s), chip(s), system(s)on a chip, server(s), programmable logic device(s), field programmablegate array(s), electronic device(s), special purpose circuitry, and/orother suitable device(s) described herein or otherwise known in the art.One or more non-transitory machine-readable media embodying programinstructions that, when executed by one or more machines, cause the oneor more machines to perform or implement operations comprising the stepsof any of the methods described herein are contemplated herein. As usedherein, machine-readable media includes all forms of machine-readablemedia (e.g. one or more non-volatile or volatile storage media,removable or non-removable media, integrated circuit media, magneticstorage media, optical storage media, or any other storage media,including RAM, ROM, and EEPROM) that may be patented under the laws ofthe jurisdiction in which this application is filed, but does notinclude machine-readable media that cannot be patented under the laws ofthe jurisdiction in which this application is filed. Systems thatinclude one or more machines and one or more non-transitorymachine-readable media for implementing any method described herein arealso contemplated herein. One or more machines that perform orimplement, or are configured, operable or adapted to perform orimplement operations comprising the steps of any methods describedherein are also contemplated herein. Each method described herein thatis not prior art represents a specific set of rules in a process flowthat provides significant advantages in the field of determining one ormore heights of one or more mobile devices above surfaces. Method stepsdescribed herein may be order independent and can be performed inparallel or in an order different from that described if possible to doso. Different method steps described herein can be combined to form anynumber of methods, as would be understood by one of ordinary skill inthe art. Any method step or feature disclosed herein may be omitted froma claim for any reason. Certain well-known structures and devices arenot shown in figures to avoid obscuring the concepts of the presentdisclosure. When two things are “coupled to” each other, those twothings may be directly connected together, or separated by one or moreintervening things. Where no lines or intervening things connect twoparticular things, coupling of those things is contemplated in at leastone embodiment unless otherwise stated. Where an output of one thing andan input of another thing are coupled to each other, information sentfrom the output is received in its outputted form or a modified versionthereof by the input even if the information passes through one or moreintermediate things. Any known communication pathways and protocols maybe used to transmit information (e.g., data, commands, signals, bits,symbols, chips, and the like) disclosed herein unless otherwise stated.The words comprise, comprising, include, including and the like are tobe construed in an inclusive sense (i.e., not limited to) as opposed toan exclusive sense (i.e., consisting only of). Words using the singularor plural number also include the plural or singular number,respectively, unless otherwise stated. The word “or” and the word “and”as used in the Detailed Description cover any of the items and all ofthe items in a list unless otherwise stated. The words some, any and atleast one refer to one or more. The terms may or can are used herein toindicate an example, not a requirement—e.g., a thing that may or canperform an operation, or may or can have a characteristic, need notperform that operation or have that characteristic in each embodiment,but that thing performs that operation or has that characteristic in atleast one embodiment. Unless an alternative approach is described,access to data from a source of data may be achieved using knowntechniques (e.g., requesting component requests the data from the sourcevia a query or other known approach, the source searches for and locatesthe data, and the source collects and transmits the data to therequesting component).

FIG. 4 illustrates components of a transmitter, a mobile device, and aserver. Examples of communication pathways are shown by arrows betweencomponents.

By way of example in FIG. 4, each of the transmitters may include: amobile device interface 11 for exchanging information with a mobiledevice (e.g., an antenna and RF front end components known in the art orotherwise disclosed herein); one or more processor(s) 12; memory/datasource 13 for providing storage and retrieval of information and/orprogram instructions; atmospheric sensor(s) 14 for measuringenvironmental conditions (e.g., pressure, temperature, other) at or nearthe transmitter; a server interface 15 for exchanging information with aserver (e.g., an antenna, a network interface, or other); and any othercomponents known to one of ordinary skill in the art. The memory/datasource 13 may include memory storing software modules with executableinstructions, and the processor(s) 12 may perform different actions byexecuting the instructions from the modules, including: (i) performanceof part or all of the methods as described herein or otherwiseunderstood by one of skill in the art as being performable at thetransmitter; (ii) generation of positioning signals for transmissionusing a selected time, frequency, code, and/or phase; (iii) processingof signaling received from the mobile device or other source; or (iv)other processing as required by operations described in this disclosure.Signals generated and transmitted by a transmitter may carry differentinformation that, once determined by a mobile device or a server, mayidentify the following: the transmitter; the transmitter's position;environmental conditions at or near the transmitter; and/or otherinformation known in the art. The atmospheric sensor(s) 14 may beintegral with the transmitter, or separate from the transmitter andeither co-located with the transmitter or located in the vicinity of thetransmitter (e.g., within a threshold amount of distance).

By way of example FIG. 4, the server may include: a mobile deviceinterface 21 for exchanging information with a mobile device (e.g., anantenna, a network interface, or other); one or more processor(s) 32;memory/data source 33 for providing storage and retrieval of informationand/or program instructions; a transmitter interface 34 for exchanginginformation with a transmitter (e.g., an antenna, a network interface,or other); and any other components known to one of ordinary skill inthe art. The memory/data source 33 may include memory storing softwaremodules with executable instructions, and the processor(s) 32 mayperform different actions by executing instructions from the modules,including: (i) performance of part or all of the methods as describedherein or otherwise understood by one of ordinary skill in the art asbeing performable at the server; (ii) estimation of an altitude of themobile device; (iii) computation of an estimated position of the mobiledevice; or (iv) other processing as required by operations described inthis disclosure. Steps performed by servers as described herein may alsobe performed on other machines that are remote from a mobile device,including computers of enterprises or any other suitable machine.

Certain aspects disclosed herein relate to estimating the positions ofmobile devices—e.g., where the position is represented in terms of:latitude, longitude, and/or altitude coordinates; x, y, and/or zcoordinates; angular coordinates; or other representations. Varioustechniques to estimate the position of a mobile device can be used,including trilateration, which is the process of using geometry toestimate the position of a mobile device using distances traveled bydifferent “positioning” (or “ranging”) signals that are received by themobile device from different beacons (e.g., terrestrial transmittersand/or satellites). If position information like the transmission timeand reception time of a positioning signal from a beacon are known, thenthe difference between those times multiplied by speed of light wouldprovide an estimate of the distance traveled by that positioning signalfrom that beacon to the mobile device. Different estimated distancescorresponding to different positioning signals from different beaconscan be used along with position information like the locations of thosebeacons to estimate the position of the mobile device. Positioningsystems and methods that estimate a position of a mobile device (interms of latitude, longitude and/or altitude) based on positioningsignals from beacons (e.g., transmitters, and/or satellites) and/oratmospheric measurements are described in co-assigned U.S. Pat. No.8,130,141, issued Mar. 6, 2012, and U.S. Pat. Pub. No. 2012/0182180,published Jul. 19, 2012. It is noted that the term “positioning system”may refer to satellite systems (e.g., Global Navigation SatelliteSystems (GNSS) like GPS, GLONASS, Galileo, and Compass/Beidou),terrestrial transmitter systems, and hybrid satellite/terrestrialsystems.

This application relates to the following related application(s): U.S.patent application Ser. No. 16721184, filed Dec. 19, 2019, entitledSYSTEMS AND METHODS FOR DETERMINING A HEIGHT OF A MOBILE DEVICE ABOVE ASURFACE; and U.S. Pat. Appl. No. 62791849, filed Jan. 13, 2019, entitledSYSTEMS AND METHODS FOR DETERMINING A HEIGHT OF A MOBILE DEVICE ABOVE ASURFACE. The content of each of the related application(s) is herebyincorporated by reference herein in its entirety.

The invention claimed is:
 1. A method for determining one or moreheights of one or more mobile devices above surfaces, wherein the methodcomprises: retrieving first data that comprises one or more of (i) atleast one measurement value determined by at least one sensor of amobile device or (ii) at least one estimated position of the mobiledevice; based on the first data, determining a location context byselecting the location context from among two or more possible locationcontexts that each specify location circumstances of the mobile deviceas being any of (i) with a user who is on foot, (ii) on a bike or with auser who is on a bike, (iii) in a vehicle, (iv) stationary, (v) on asurface after being dropped, or (vi) at a known location; based on thedetermined location context, identifying second data to retrieve for usein determining an estimated height at which the mobile device is locatedabove the surface; retrieving the second data; determining, based on theretrieved second data, the estimated height at which the mobile deviceis located above the surface; and calibrating a pressure sensor of themobile device based on the estimated height above the surface, orestimating an altitude of the mobile device as a sum of an altitude ofthe surface and the estimated height above the surface, or determiningan estimated altitude of the surface as a difference between anestimated altitude of the mobile device and the estimated height abovethe surface.
 2. The method of claim 1, wherein the first data comprisesat least one measurement value, and wherein determining the locationcontext comprises: determining that the location context specifies themobile device as being with a user who is on foot when the first data isindicative of a movement associated with a walking or running user,wherein the at least one measurement value is indicative of a movementassociated with a walking or running user when (i) the at least onemeasurement value represents a stepping movement of the user recordedover time, or (ii) the at least one measurement value includes periodicmeasurements of an angular orientation from a gyroscope that isindicative of an orientation at which a mobile device is periodicallypositioned while being carried by a user who is walking or running;determining that the location context specifies the mobile device asbeing on or with a user who is on a bike when the first data isindicative of a movement associated with a moving bike, wherein the atleast one measurement value is indicative of movement associated with amoving bike when (i) a measured spread of up and down Z-accelerationsexceeds a threshold value for a percent of time during whichZ-accelerations are measured, or (ii) a measured spread of increases anddecreases of XY-accelerations exceeds a threshold value for a percent oftime during which XY-accelerations are measured; determining that thelocation context specifies the mobile device as being in a vehicle whenthe first data is indicative of a movement associated with a movingvehicle, wherein the at least one measurement value is indicative of amovement associated with a moving vehicle when (i) a measured spread ofup and down Z-accelerations exceeds a threshold value for a percent oftime during which Z-accelerations are measured, or (ii) a measuredspread of increases and decreases of XY-accelerations exceeds athreshold value for a percent of time during which XY-accelerations aremeasured; determining that the location context specifies the mobiledevice as being stationary when the first data is indicative of nomovement, wherein the at least one measurement value is indicative of nomovement when (i) a difference between two readings of an accelerometerthat are measured within a predefined amount of time of each other isbelow an acceleration threshold, or (ii) an angular separation betweentwo orientation readings of a gyroscope that are measured within anotherpredefined amount of time of each other is below an orientationthreshold; or determining that the location context specifies the mobiledevice as being on a surface after being dropped when the first data isindicative of a movement associated with resting after falling, whereinthe at least one measurement value is indicative of resting afterfalling when (i) an accelerometer of the mobile device measures a largeimpact via a sudden change in Z-axis acceleration from one measurementto another measurement that exceeds a threshold amount of change, or(ii) the accelerometer of the mobile device measures no Z-axisacceleration after a measurement of Z-axis acceleration associated withfalling.
 3. The method of claim 1, wherein the first data includes twoor more estimated positions of the mobile device, and whereindetermining the location context comprises: determining that thelocation context specifies the mobile device as being with a user who ison foot when the first data is indicative of a movement associated witha walking or running user, wherein the two or more estimated positionsare indicative of a movement associated with a walking or running userwhen a velocity of the mobile device calculated by dividing a distancebetween the two estimated positions by a time elapsed between when eachof the estimated positions was determined is above a thresholdassociated with a minimum walking speed and below a threshold associatedwith a maximum running speed; determining that the location contextspecifies the mobile device as being on or with a user who is on a bikewhen the first data is indicative of a movement associated with a bike,wherein the two or more estimated positions are indicative of a movementassociated with a bike when a velocity of the mobile device calculatedby dividing a distance between the two estimated positions by a timeelapsed between when each of the estimated positions was determined isabove the threshold associated with the maximum running speed and belowa threshold associated with a maximum bike speed or associated with aspeed below which a vehicle is unlikely to be traveling; determiningthat the location context specifies the mobile device as being in avehicle when the first data is indicative of a movement associated witha vehicle, wherein the two or more estimated positions are indicative ofa movement associated with a vehicle when a velocity of the mobiledevice calculated by dividing a distance between the two estimatedpositions by a time elapsed between when each of the estimated positionswas determined is above the threshold associated with the maximum bikespeed or associated with a speed below which a vehicle is unlikely to betraveling, and below a threshold associated with a maximum speed of avehicle; determining that the location context specifies the mobiledevice as being stationary when the first data is indicative of amovement associated with being stationary, wherein the two or moreestimated positions are indicative of a movement associated with beingstationary when a velocity of the mobile device calculated by dividing adistance between the two estimated positions by a time elapsed betweenwhen each of the estimated positions was determined is below thethreshold associated with the minimum walking speed; determining thatthe location context specifies the mobile device as being stationarywhen the first data is indicative of a movement associated with beingstationary, wherein the two or more estimated positions are indicativeof a movement associated with being stationary when a velocity of themobile device calculated by dividing a distance between the twoestimated positions by a time elapsed between when each of the estimatedpositions was determined is below the threshold associated with theminimum walking speed and when a vertical velocity of the mobile deviceis below a vertical velocity threshold; determining that the locationcontext specifies the mobile device as being on a surface after beingdropped when the first data is indicative of a movement associated withfalling to and landing on the surface, wherein the two or more estimatedpositions of the mobile device include a first estimated position and asecond estimated position, wherein the two or more estimated positionsare indicative of a movement associated with falling to and landing onthe surface when the second estimated position is lower than the firstestimated position, and a vertical velocity of the mobile devicecalculated by dividing a Z distance between the two estimated positionsby a time elapsed between when each of the estimated positions wasdetermined is above a vertical velocity threshold; or determining thatthe location context specifies the mobile device as being on a surfaceafter being dropped when the first data is indicative of a movementassociated with falling to and landing on the surface, wherein the twoor more estimated positions of the mobile device include a firstestimated position and a second estimated position, wherein the two ormore estimated positions are indicative of a movement associated withfalling to and landing on the surface when the second estimated positionis lower than the first estimated position, a vertical velocity of themobile device calculated by dividing a Z distance between the twoestimated positions by a time elapsed between when each of the estimatedpositions was determined is above a vertical velocity threshold, and ahorizontal velocity of the mobile device calculated by dividing an XYdistance between the two estimated positions by the time elapsed betweenwhen each of the estimated positions was determined is below thethreshold associated with the minimum walking speed.
 4. The method ofclaim 1, wherein the first data that comprises at least one measurementvalue determined by at least one sensor of a mobile device, and whereindetermining the location context comprises: determining that thelocation context specifies the mobile device as being with a user who ison foot when the at least one measurement value is indicative of amovement associated with a walking or running user, wherein the at leastone measurement value is indicative of a movement associated with awalking or running user when (i) the at least one measurement valuerepresents a stepping movement of the user recorded over time, or (ii)the at least one measurement value includes periodic measurements of anangular orientation from a gyroscope that is indicative of anorientation at which a mobile device is periodically positioned whilebeing carried by a user who is walking or running.
 5. The method ofclaim 1, wherein the first data that comprises at least one measurementvalue determined by at least one sensor of a mobile device, and whereindetermining the location context comprises: determining that thelocation context specifies the mobile device as being on or with a userwho is on a bike when the at least one measurement value is indicativeof a movement associated with a moving bike, wherein the at least onemeasurement value is indicative of movement associated with a movingbike when (i) a measured spread of up and down Z-accelerations exceeds athreshold value for a percent of time during which Z-accelerations aremeasured, or (ii) a measured spread of increases and decreases ofXY-accelerations exceeds a threshold value for a percent of time duringwhich XY-accelerations are measured.
 6. The method of claim 1, whereinthe first data that comprises at least one measurement value determinedby at least one sensor of a mobile device, and wherein determining thelocation context comprises: determining that the location contextspecifies the mobile device as being in a vehicle when the at least onemeasurement value is indicative of a movement associated with a movingvehicle, wherein the at least one measurement value is indicative of amovement associated with a moving vehicle when (i) a measured spread ofup and down Z-accelerations exceeds a threshold value for a percent oftime during which Z-accelerations are measured, or (ii) a measuredspread of increases and decreases of XY-accelerations exceeds athreshold value for a percent of time during which XY-accelerations aremeasured.
 7. The method of claim 1, wherein the first data thatcomprises at least one measurement value determined by at least onesensor of a mobile device, and wherein determining the location contextcomprises: determining that the location context specifies the mobiledevice as being stationary when the at least one measurement value isindicative of no movement, wherein the at least one measurement value isindicative of no movement when (i) a difference between two readings ofan accelerometer that are measured within a predefined amount of time ofeach other is below an acceleration threshold, or (ii) an angularseparation between two orientation readings of a gyroscope that aremeasured within another predefined amount of time of each other is belowan orientation threshold.
 8. The method of claim 1, wherein the firstdata that comprises at least one measurement value determined by atleast one sensor of a mobile device, and wherein determining thelocation context comprises: determining that the location contextspecifies the mobile device as being on a surface after being droppedwhen the at least one measurement value is indicative of a movementassociated with resting after falling, wherein the at least onemeasurement value is indicative of resting after falling when (i) anaccelerometer of the mobile device measures a large impact via a suddenchange in Z-axis acceleration from one measurement to anothermeasurement that exceeds a threshold amount of change, or (ii) theaccelerometer of the mobile device measures no Z-axis acceleration aftera measurement of Z-axis acceleration associated with falling.
 9. Themethod of claim 1, wherein the first data includes two or more estimatedpositions of the mobile device, and wherein determining the locationcontext comprises: determining that the location context specifies themobile device as being with a user who is on foot when the two or moreestimated positions are indicative of a movement associated with awalking or running user, wherein the two or more estimated positions areindicative of a movement associated with a walking or running user whena velocity of the mobile device calculated by dividing a distancebetween the two estimated positions by a time elapsed between when eachof the estimated positions was determined is above a thresholdassociated with a minimum walking speed and below a threshold associatedwith a maximum running speed.
 10. The method of claim 1, wherein thefirst data includes two or more estimated positions of the mobiledevice, and wherein determining the location context comprises:determining that the location context specifies the mobile device asbeing on or with a user who is on a bike when the two or more estimatedpositions are indicative of a movement associated with a bike, whereinthe two or more estimated positions are indicative of a movementassociated with a bike when a velocity of the mobile device calculatedby dividing a distance between the two estimated positions by a timeelapsed between when each of the estimated positions was determined isabove a threshold associated with a maximum running speed and below athreshold associated with a maximum bike speed or associated with aspeed below which a vehicle is unlikely to be traveling.
 11. The methodof claim 1, wherein the first data includes two or more estimatedpositions of the mobile device, and wherein determining the locationcontext comprises: determining that the location context specifies themobile device as being in a vehicle when the two or more estimatedpositions are indicative of a movement associated with a vehicle,wherein the two or more estimated positions are indicative of a movementassociated with a vehicle when a velocity of the mobile devicecalculated by dividing a distance between the two estimated positions bya time elapsed between when each of the estimated positions wasdetermined is above a threshold associated with a maximum bike speed orassociated with a speed below which a vehicle is unlikely to betraveling, and below a threshold associated with a maximum speed of avehicle.
 12. The method of claim 1, wherein the first data includes twoor more estimated positions of the mobile device, and whereindetermining the location context comprises: determining that thelocation context specifies the mobile device as being stationary whenthe two or more estimated positions are indicative of a movementassociated with being stationary, wherein the two or more estimatedpositions are indicative of a movement associated with being stationarywhen a velocity of the mobile device calculated by dividing a distancebetween the two estimated positions by a time elapsed between when eachof the estimated positions was determined is below a thresholdassociated with a minimum walking speed.
 13. The method of claim 1,wherein the first data includes two or more estimated positions of themobile device, and wherein determining the location context comprises:determining that the location context specifies the mobile device asbeing stationary when the two or more estimated positions are indicativeof a movement associated with being stationary, wherein the two or moreestimated positions are indicative of a movement associated with beingstationary when a velocity of the mobile device calculated by dividing adistance between the two estimated positions by a time elapsed betweenwhen each of the estimated positions was determined is below a thresholdassociated with a minimum walking speed and when a vertical velocity ofthe mobile device is below a vertical velocity threshold.
 14. The methodof claim 1, wherein the first data includes two or more estimatedpositions of the mobile device, and wherein determining the locationcontext comprises: determining that the location context specifies themobile device as being on a surface after being dropped when the two ormore estimated positions are indicative of a movement associated withfalling to and landing on the surface, wherein the two or more estimatedpositions of the mobile device include a first estimated position and asecond estimated position, wherein the two or more estimated positionsare indicative of a movement associated with falling to and landing onthe surface when the second estimated position is lower than the firstestimated position, and a vertical velocity of the mobile devicecalculated by dividing a Z distance between the two estimated positionsby a time elapsed between when each of the estimated positions wasdetermined is above a vertical velocity threshold.
 15. The method ofclaim 1, wherein the first data includes two or more estimated positionsof the mobile device, and wherein determining the location contextcomprises: determining that the location context specifies the mobiledevice as being on a surface after being dropped when the two or moreestimated positions are indicative of a movement associated with fallingto and landing on the surface, wherein the two or more estimatedpositions of the mobile device include a first estimated position and asecond estimated position, wherein the two or more estimated positionsare indicative of a movement associated with falling to and landing onthe surface when the second estimated position is lower than the firstestimated position, a vertical velocity of the mobile device calculatedby dividing a Z distance between the two estimated positions by a timeelapsed between when each of the estimated positions was determined isabove a vertical velocity threshold, and a horizontal velocity of themobile device calculated by dividing an XY distance between the twoestimated positions by the time elapsed between when each of theestimated positions was determined is below a threshold associated witha minimum walking speed.
 16. The method of claim 1, wherein the firstdata includes an estimated position of the mobile device, and whereindetermining the location context comprises: determining that thelocation context specifies the mobile device as being (i) with a userwho is on foot if the estimated position is on or within a thresholddistance to a venue where the user is likely to be walking or runningwith the mobile device, (ii) on or with a user on a bike if theestimated position is on or within a threshold distance to a bike pathwhere the user is likely to be riding a bike with the mobile device,(iii) in a vehicle if the estimated position is on or within a thresholddistance to a highway or expressway, or (iv) stationary if the estimatedposition is at the user's residence or workplace.
 17. The method ofclaim 1, wherein the first data includes measurement values determinedby a pressure sensor of the mobile device, and wherein determining thelocation context comprises: determining that the location contextspecifies the mobile device as being in a vehicle when the measurementvalues are indicative of turbulent conditions quantified as (i) avariance or standard deviation of the measurement values over a timeperiod that exceeds a threshold, or (ii) a range of the measurementvalues over the time period that exceeds a threshold.
 18. A system fordetermining one or more heights of one or more mobile devices abovesurfaces, the system comprising one or more machines configured toperform the method of claim
 1. 19. One or more non-transitoryprocessor-readable media embodying program instructions that, whenexecuted by one or more machines, cause the one or more machines toimplement the method of claim 1.